Linuxのpsコマンドとは何ですか?
Linuxのpsコマンドは、システムで実行中のプロセスについて表示するために使用されます。自分または他のユーザーが同じLinuxシステムで実行しているプロセスのプロセスID(PID)などの情報を取得できます。
psコマンドはそれ自体が広範なツールであり、80を超えるコマンドオプションがあります。その強さと複雑さを理解することができます。これが、Linuxでのpsコマンドの最も一般的で最も有用な例のいくつかを紹介する理由です。
Linuxでのpsコマンドの基本的な使用法
Linuxでオプションを指定せずにpsコマンドを使用すると、現在のシェルで実行中のプロセスが表示されます。
ps
これが出力です。バックグラウンドでGeditコマンドを送信したので、3つのプロセスが表示されます。それ以外の場合は、通常、psとbashのみが表示されます。
PID TTY TIME CMD
503 pts/0 00:00:00 gedit
2053 pts/0 00:00:00 ps
31585 pts/0 00:00:00 bash
ここで:
- PIDはプロセスの一意のプロセスIDです
- TTYは、ユーザーがログインしている端末のタイプです。 ptsは疑似端末を意味します
- TIMEは、プロセスが実行されている時間を示します
- CMDは、プロセスを起動するために実行するコマンドです
さて、これは実際に有用な情報を提供するものではありません。 psコマンドのより良い例をいくつか見てみましょう:
1。実行中のすべてのプロセスを表示
実行されているすべてのプロセスを確認する場合は、次のようにオプションxを指定してpsコマンドを使用できます。
ps -x
xオプションは、現在のtty(端末タイプ)に関連付けられていない場合や、制御端末(デーモンなど)がない場合でも、すべてのプロセスを表示します。
– beforeオプションxはオプションですが、一般的なLinuxの規則では– beforeオプションを使用するため、これを継続することをお勧めします。傷つけることはありません。
これは出力がどのように見えるかです。数百行あるため、出力を切り捨てました:
PID TTY STAT TIME COMMAND
503 pts/0 Sl 0:00 gedit
2245 ? S 0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
3039 ? Ss 0:00 /lib/systemd/systemd --user
3040 ? S 0:00 (sd-pam)
3054 ? SLl 0:01 /usr/bin/gnome-keyring-daemon --daemonize --login
3059 tty2 Ssl+ 0:00 /usr/lib/gdm3/gdm-x-session --run-script env
上記の出力のSTATは、プロセス状態コードを意味します。詳細な表は、psコマンドのマニュアルページにあります。
ただし、オプションxだけでpsコマンドが使用されることはめったにありません。通常、この方法でオプションuが付随します:
ps -ux
オプションuを使用すると、各プロセスに関する詳細情報が得られます。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
abhishek 503 0.0 0.4 681580 37516 pts/0 Sl 18:09 0:00 gedit
abhishek 2245 0.0 0.0 11300 1496 ? S 18:37 0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
abhishek 3039 0.0 0.0 77344 3508 ? Ss 10:37 0:00 /lib/systemd/systemd --user
abhishek 3040 0.0 0.0 114632 360 ? S 10:37 0:00 (sd-pam)
abhishek 3054 0.0 0.1 517104 11512 ? SLl 10:37 0:01 /usr/bin/gnome-keyring-daemon --daemonize --login
ご覧のとおり、各プロセスのユーザー名とCPU消費量およびメモリ使用量を取得できます。 RSSは、プロセスが現在RAMに持っているメモリの量を示し、VSZは、プロセスが合計で持っている仮想メモリの量を示します。
2。 psauxコマンドで実行中のすべてのプロセスを表示
おそらくps -aux
が表示されます またはps aux
Linuxのチュートリアルとドキュメントでは常に。
-aオプションを追加すると、Linuxシステム上のすべてのユーザーが実行中のプロセスを確認できます。
ps -aux
コマンド出力はps-uxと同じですが、他のユーザーからのプロセスもあります。 -uオプションのおかげで、どのプロセスがどのユーザーに属しているかを識別できます。
3。 Linuxでps-efコマンドを使用して実行中のすべてのプロセスを表示する
ps -auxとは別に、-eコマンドを使用して実行中のすべてのプロセスを一覧表示することもできます。一般的な方法は、オプションfと組み合わせて、プロセスの実行に使用されるコマンドの完全なリストを取得することです。
ps -ef
注意してください– eが重要である前に、そうでない場合は異なる結果を示します。言っておきますが、psはめちゃくちゃで複雑なコマンドです。
Hオプションを組み合わせて、スレッドビューですべてのプロセスを親の下の子プロセスと表示することもできます。
ps -efH
4。特定のユーザーによる実行中のすべてのプロセスを表示する
特定のユーザーによって実行されるすべてのプロセスに関する情報を取得するには、ユーザー名に-Uオプションを使用できます。
ps -U user_name
たとえば、次のようにrootユーザーが実行しているすべてのプロセスを確認できます。
ps -U root
PID TTY TIME CMD
1 ? 00:00:41 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
8 ? 00:00:00 mm_percpu_wq
9 ? 00:00:03 ksoftirqd/0
10 ? 00:01:22 rcu_sched
5。グループによって実行されるすべてのプロセスを表示する
グループ名またはグループIDを指定して、実行中のプロセスをユーザーではなくグループ別に分類することもできます。
ps -G group_name_or_id
オプションfと組み合わせて、完全なリストを取得できます。
6。プログラムのすべてのオカレンスとPIDを取得する
psコマンドの基本的な使用法の1つは、実行中のプログラムのプロセスID(PID)を取得することです。通常、動作に問題のあるプログラムを強制終了する場合は、プログラムのすべてのオカレンスを検索し、それらのPIDを取得し、killコマンドを使用してプロセスを終了します。
ps -C program__name
たとえば、aptパッケージマネージャーの実行中のすべてのインスタンスを検索する必要がある場合:
ps -C apt
PID TTY TIME CMD
11425 pts/1 00:00:00 apt
grepコマンドを使用して同様の結果を取得することもできます。
ps aux | grep program_name
7。 PIDに関するプロセス情報を取得する
大丈夫! PIDを持っていますが、それがどのプロセスに属しているのかわかりません。 psコマンドを使用して、次の方法でPIDからプロセス情報を見つけることができます。
ps -pN
複数のPIDをカンマで区切って使用できます:
ps -pN1,N2,N3
他に何がありますか?
前に述べたように、psは複雑で広範なコマンドです。これらは、ほとんどの場合に必要となる最も一般的なpsコマンドの例の一部です。さらに必要な場合は、いつでもそのマニュアルページを参照できます。
定期的に使用するpsコマンドの他の便利な例がある場合は、コメントセクションで他の人と共有してみませんか?