1. ホーム
  2. linux

[解決済み】長時間稼働しているLinuxプロセスの開始時刻を取得する方法とは?

2022-03-28 16:19:50

質問

古い実行プロセスの開始時刻を取得することは可能ですか?どうやら ps は、今日開始されていない場合は日付(時間ではない)を、今年開始されていない場合は年だけを報告します。古いプロセスでは、精度は永遠に失われるのでしょうか?

解決方法は?

フォーマッタを指定し lstart このコマンドのように

ps -eo pid,lstart,cmd

上記のコマンドは、すべてのプロセスを出力し、PID、実行されたコマンド、および起動した日時を取得するためのフォーマッタを備えています。

例 (Debian/Jessie のコマンドラインから)

$ ps -eo pid,lstart,cmd
  PID CMD                                          STARTED
    1 Tue Jun  7 01:29:38 2016 /sbin/init                  
    2 Tue Jun  7 01:29:38 2016 [kthreadd]                  
    3 Tue Jun  7 01:29:38 2016 [ksoftirqd/0]               
    5 Tue Jun  7 01:29:38 2016 [kworker/0:0H]              
    7 Tue Jun  7 01:29:38 2016 [rcu_sched]                 
    8 Tue Jun  7 01:29:38 2016 [rcu_bh]                    
    9 Tue Jun  7 01:29:38 2016 [migration/0]               
   10 Tue Jun  7 01:29:38 2016 [kdevtmpfs]                 
   11 Tue Jun  7 01:29:38 2016 [netns]                     
  277 Tue Jun  7 01:29:38 2016 [writeback]                 
  279 Tue Jun  7 01:29:38 2016 [crypto]                    
      ...

を読み取ることができます。 ps のマニュアルページまたは Opengroupのページを見る 他のフォーマッタについては、こちらをご覧ください。