導入
ps コマンドは、Linux システムで一般的に使用されるプロセス表示ツールで、現在のシステムで実行中のプロセスに関する情報を表示できます。psコマンドはプロセスのID、ステータス、実行したコマンド、メモリ使用量などを表示することができ、システム管理者にとってはシステム内のプロセスの監視や管理が容易になります。
ps コマンドの構文とオプション
ps コマンドの基本的な構文は次のとおりです。
ps [选项]
一般的に使用されるオプションは次のとおりです。
オプション | 説明する |
---|---|
-a | 他のユーザーのプロセスを含むすべてのプロセスを表示します |
-u | プロセスの詳細を表示する |
-バツ | 制御端末を持たないプロセスを表示する |
-e | システム内のすべてのプロセスを表示します |
-f | コマンドライン引数を含むプロセスの完全な形式を表示します。 |
-l | プロセスのステータス、リソースの使用状況など、プロセスに関する詳細情報を表示します。 |
-h | タイトル行を非表示にする |
例えば
1. 現在のユーザーのすべてのプロセスを表示します
ps
現在のユーザーのすべてのプロセスを表示するには、次のコマンドを使用します。
ps
このコマンドは、以下に示すように、現在のユーザーのすべてのプロセス情報を表示します。
PID TTY TIME CMD
302 tty7 00:10:29 Xorg
4372 tty1 00:00:01 bash
4603 pts/0 00:00:00 ps
出力結果の最初の列はプロセスの ID (PID)、2 列目はプロセスが配置されている制御端末 (TTY)、3 列目はプロセスの実行時間 (TIME)、 4 番目の列はプロセスのコマンド (CMD) です。)
2. すべてのプロセスを表示する
ps -A
またはコマンドを使用して、ps -e
他のユーザのプロセスを含むシステム内のすべてのプロセスに関する情報を表示します。2 つのコマンドの効果は同じで、実行結果は次のようになります。
PID TTY TIME CMD
1 ? 00:00:06 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
…
3. 処理内容の表示
このコマンドを使用して、ps -ef
プロセスのステータス、リソースの使用状況、その他の情報など、プロセスに関する詳細情報を表示します。実行結果は以下の通りです。
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12月11 ? 00:00:06 /sbin/init splash
root 2 0 0 12月11 ? 00:00:00 [kthreadd]
root 3 2 0 12月11 ? 00:00:00 [rcu_gp]
…
4. 長いタスクをバックグラウンドで実行する
nohup
Linux では、完了までに長い時間がかかるタスクをバックグラウンドで実行する必要がある場合があります。これを実現するには、コマンドとシンボルを使用できます&
。サンプル コードは次のとおりです。
nohup command > /dev/null 2>&1 &
このうち、command
は実行する必要があるコマンドを意味し、 は>/dev/null 2>&1
標準出力と標準エラーを にリダイレクトすることを意味し/dev/null
、 は&
コマンドをバックグラウンドで実行することを意味します。
5. プロセスの検索 (一般的に使用される)
Linux では、プロセスに関する情報を検索したり、プロセスを強制終了したりする必要がある場合がありますが、この場合は、ps
コマンドgrep
とkill
コマンドを組み合わせて使用することでこれを実現できます。
たとえば、nginx
キーワード を含むすべてのプロセス情報を検索したいと仮定すると、次のコマンドを使用できます。
ps -ef | grep nginx
実行結果は以下の通りです。
root 1608 1 0 11:40 ? 00:00:00 nginx: master process nginx -g daemon on; master_process on;
www-data 1610 1608 0 11:40 ? 00:00:00 nginx: worker process
www-data 1611 1608 0 11:40 ? 00:00:00 nginx: worker process
nginx
ID 1608 のメインプロセスを強制終了する場合は、次のコマンドを使用できます。
kill -9 1608
4. 進捗状況のリアルタイム表示
プロセスのステータスをリアルタイムで確認する必要がある場合は、top
コマンドを使用できます。コマンドを実行するtop
と、以下に示すように、システム内の各プロセスのステータス、リソース使用量、その他の情報がリアルタイムに表示されます。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7583 root 20 0 319236 88264 17976 S 0.7 11.5 0:06.98 Xorg
7829 binjie09 20 0 1476780 361616 109568 S 0.7 47.3 2:36.70 chrome
7941 binjie09 20 0 1147772 249564 100064 S 0.7 32.6 0:40.26 gnome-shell
8334 binjie09 20 0 1072240 252328 116060 S 0.7 33.0 0:12.02 gnome-terminal-
8564 binjie09 20 0 607192 183952 75352 S 0.7 24.0 0:08.58 chrome
コマンドラインで使用してコマンドCtrl+C
を終了します。top
5. プロセスが占有しているポートを確認します。
特定のプロセスによって占有されているポートを確認する必要がある場合は、netstat
コマンドとgrep
コマンドを併用してこれを実現できます。たとえば、8080
ポート番号を占有しているすべてのプロセスに関する情報を検索する場合は、次のコマンドを使用できます。
netstat -nlp | grep 8080
実行結果は以下の通りです。
tcp6 0 0 :::8080 :::* LISTEN 7829/chrome
このうち「LISTEN」は、ポートが接続要求を待機していることを意味します。
要約する
ps コマンドは、Linux システムで一般的に使用されるプロセス表示ツールで、システム内で現在実行中のプロセス情報を表示し、システム内のプロセスを簡単に監視および管理できます。ps コマンドのオプションは豊富かつ多様であり、使用方法は柔軟であり、実際のニーズに応じてさまざまなオプションを選択して表示できます。日々の業務において、ps コマンドを使いこなすことは非常に重要であり、作業効率の向上にもつながります。