ps コマンドのデフォルト表示
ps aux や ps -ef では起動日時が表示されるが、精度が低く「日付だけ」や「時刻だけ」になる場合がある。
$ ps aux | head -3
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 168936 13312 ? Ss Jun01 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S Jun01 0:00 [kthreadd]
START 列が日付だけで時刻が分からない。
lstart で正確な起動日時を表示する
-o lstart を指定すると、プロセスの起動日時を曜日・月・日・時刻・年の形式で表示できる。
$ ps -eo lstart,pid,comm
STARTED PID COMMAND
Wed Jun 3 08:00:01 2026 1 systemd
Wed Jun 3 08:00:02 2026 103 kthreadd
lstart だけではプロセスを特定しにくいため、実用上は他のフィールドと組み合わせて使う。
実用的な組み合わせ
ユーザー名・グループ名・コマンド名を合わせて表示する。
$ ps -eo lstart,pid,user,group,comm
STARTED PID USER GROUP COMMAND
Wed Jun 3 08:00:01 2026 1 root root systemd
Wed Jun 3 08:00:05 2026 512 www-data www-data nginx
Wed Jun 3 09:30:12 2026 1024 deploy deploy ruby
フルコマンドライン(引数込み)を表示したい場合は comm の代わりに args を指定する。
$ ps -eo lstart,pid,user,group,args
STARTED PID USER GROUP COMMAND
Wed Jun 3 08:00:01 2026 1 root root /sbin/init splash
Wed Jun 3 08:00:05 2026 512 www-data www-data nginx: master process /usr/sbin/nginx
grep で特定のプロセスを絞り込む
$ ps -eo lstart,pid,user,group,comm | grep nginx
Wed Jun 3 08:00:05 2026 512 www-data www-data nginx
Wed Jun 3 08:00:05 2026 513 www-data www-data nginx
特定のプロセスが何時に起動したかを確認できる。
macOS との違い
macOSでも同じオプションが使えるが、group フィールドがグループ名ではなくGID(数値)で表示される。
$ ps -eo lstart,pid,user,group,comm | head -3
STARTED PID USER GID COMM
水 4/22 20:04:53 2026 1 root 0 /sbin/launchd
水 4/22 20:05:05 2026 103 root 0 /usr/libexec/logd
また、日時のフォーマットはロケール設定を反映した表示になる。
\第一線のプログラマーの行動原理を学べる!/
