Linuxでpsコマンドを使用してプロセスを強制終了する方法
作業中、プログラムが突然フリーズすることがあります。また、プログラムはまだ実行されていますが、プロセッサまたはメモリの消費量が多い場合もあります。 ps
を使用してLinuxでこれを修正する方法があります ( P rocess S tatus)コマンド。ここでは、ps
の使用方法を示します Linuxでコマンドを実行して、現在実行中のプロセスとそのPIDを一覧表示します。その後、リソースを消費しているプロセスを見つけて強制終了できます。
「ps」コマンドの使用
ps
コマンドは単独で使用できます。 4列の情報を出力します:
- PID :システムによって定義されたプロセスの一意の識別子。これは、プロセスを停止するために使用する値です。
- TTY :プロセスが開始された端末。
- 時間 :プロセスで使用されたCPU時間の合計。
- CMD :プロセスを生成するコマンド
オプションを指定せずにコマンドを使用すると、多くの情報が表示されないことに注意してください。これをより便利にするいくつかの方法があります。
1。すべてのユーザーのプロセスを一覧表示する
一部のプログラムがインストールされると、プロセスを実行するための追加のユーザーが作成されることもあります。ユーザーのプロセスを一覧表示するには、-e
を使用します オプション:
ps -e
およびその出力:
PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 kworker/0:0 4 ? 00:00:00 kworker/0:0H 5 ? 00:00:00 kworker/u256:0 6 ? 00:00:00 mm_percpu_wq
2。詳細情報を含むプロセスの一覧表示
実行中のプロセスを一覧表示すると、より多くの情報を得ることができます。これを行うには、ef
を使用できます オプション。
ps -ef
およびその出力:
UID PID PPID C STIME TTY TIME CMD root 1 0 0 21:34 ? 00:00:03 /sbin/init maybe-ubiquity root 2 0 0 21:34 ? 00:00:00 [kthreadd] root 3 2 0 21:34 ? 00:00:00 [kworker/0:0] root 4 2 0 21:34 ? 00:00:00 [kworker/0:0H] root 6 2 0 21:34 ? 00:00:00 [mm_percpu_wq] root 7 2 0 21:34 ? 00:00:00 [ksoftirqd/0]
3。プロセスIDでプロセスをフィルタリングする
表示する実行中のプロセスのプロセスIDがわかっている場合は、-p
を使用して具体的にフィルタリングできます。 国旗。これは、引数として複数のPIDを取り、単一のコンマで区切り、スペースを入れないようにすることができます。
ps -ef -p 1234,5678,9012
4。ユーザーが所有するプロセスを一覧表示する
u
を使用して、ユーザーが所有するプロセスを一覧表示することもできます。 オプションの後にユーザーの名前が続きます:
ps -u userName
およびその出力:
PID TTY TIME CMD 2832 ? 00:00:00 systemd 2842 ? 00:00:00 (sd-pam) 3043 ? 00:00:00 sshd 3044 pts/1 00:00:00 bash 18396 pts/1 00:00:00 ps
5。アクティブなプロセスを一覧表示します
ax
を使用すると、アクティブなすべてのプロセスを一覧表示できます。 オプション:
ps -ax
およびその出力:
PID TTY STAT TIME COMMAND 1 ? Ss 0:02 /sbin/init maybe-ubiquity 2 ? S 0:00 [kthreadd] 3 ? I 0:00 [kworker/0:0] 4 ? I< 0:00 [kworker/0:0H] 6 ? I< 0:00 [mm_percpu_wq] 7 ? S 0:00 [ksoftirqd/0]
6。アクティブなプロセスをユーザーとともに一覧表示します
-aux
を追加すると、アクティブなすべてのプロセスをユーザーとともに一覧表示できます。 フラグ:
ps -aux
およびその出力:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 78132 9188 ? Ss 21:34 0:02 /sbin/init maybe-ubiquity root 2 0.0 0.0 0 0 ? S 21:34 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I 21:34 0:00 [kworker/0:0] root 4 0.0 0.0 0 0 ? I< 21:34 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? I< 21:34 0:00 [mm_percpu_wq] root 7 0.0 0.0 0 0 ? S 21:34 0:00 [ksoftirqd/0] root 8 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_sched] root 9 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_bh] root 10 0.0 0.0 0 0 ? S 21:34 0:00 [migration/0]
7。プログラムの名前でプロセスをフィルタリングする
ps
にフィルタを適用することで、実行中の特定のプログラムに関する情報を取得できます。 結果:
ps -aux | grep docker
およびその出力:
root 1508 0.0 2.2 1518156 90868 ? Ssl 21:34 0:03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock userkub+ 18429 0.0 0.0 13144 1108 pts/1 S+ 23:57 0:00 grep --color=auto docker
または、C
を使用することもできます 名前でプロセスをフィルタリングするオプション:
ps -C name
8。特定の列を表示する
4つのデフォルトの列に加えて、ps
を取得できます 情報の追加列を表示します。例:
ps -e -o pid,uname,pcpu,pmem,comm
-o
フラグは、ps
の特定の出力表示オプションを設定します コマンドの結果。 psの標準表示オプションの完全なリストを参照してください。
9。結果を階層ツリースタイルで表示する
ps -e --forest
これは、ASCIIアートを使用して、プロセスを表示するためのツリースタイルの構造を作成します。フォークされたプロセスと子プロセスを適切な親プロセスの子孫として表示し、一致するように並べ替えます。ツリーの「ブランチ」を非表示にするには、-H
を使用します --forest
の代わりに 。
10。プロセススレッドの表示
ps -p 4041 -L
-L
フラグは、psの任意の機能のスレッド表示で切り替わります。特定のプロセスのスレッドを追跡するときに最も役立ちます。
11。すべてのルートプロセスを表示
ps -f -U root -u root
実際の効果的なルートIDで実行されているすべてのプロセスの検索を実行します。 -f
のおかげで、これは完全な長さの形式でそれらを表示します 国旗。 -o
と組み合わせることができます 出力をカスタマイズするためのフラグ。
killコマンドを使用してプロセスを停止します
動作に問題のあるプロセスを見つけたら、killコマンドを使用して、実行中のプロセスを強制終了できます。このコマンドは、シグナルを終了するプロセスにシグナルを送信します。プログラムがフリーズしている場合、ほとんどの場合、-9
を使用してプログラムを強制的に強制終了する必要があります。 オプション。
psの出力はインスタントビューです。 htop
とは異なり 、動的に更新されません。これは、どのプロセスが誤動作しているかを明確に把握するために、複数回実行する必要がある場合があることを意味します。プロセスの最新のビューを取得するには、Linuxシステム用の他のコマンドを試すことができます。
-
Linuxでプロセスを強制終了する方法
Linuxでプロセスを強制終了するために利用できるメソッドは多数あります。このチュートリアルでは、壊れたプロセスを見つけて強制終了する方法を説明します。 プロセスは簡単に孤立する可能性があります。意図的かどうかに関係なく、親プロセスがクラッシュし、子プロセスが実行されたままになる可能性があります。親プロセスが完了した子プロセスを取得できず、ゾンビになる場合があります。 これらのプロセスは両方とも行き詰まっており、手動による介入が必要です。 ジョブ制御を入力します。 壊れたプロセスを強制終了する方法を見てみましょう。 いくつかのコマンドを見てみましょう: トップ (そしてなぜ htop
-
Linuxでwatchコマンドを使用する方法と例
Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時