Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxでpsコマンドを使用してプロセスを強制終了する方法

Linuxでpsコマンドを使用してプロセスを強制終了する方法

作業中、プログラムが突然フリーズすることがあります。また、プログラムはまだ実行されていますが、プロセッサまたはメモリの消費量が多い場合もあります。 psを使用してLinuxでこれを修正する方法があります ( P rocess S tatus)コマンド。ここでは、psの使用方法を示します Linuxでコマンドを実行して、現在実行中のプロセスとそのPIDを一覧表示します。その後、リソースを消費しているプロセスを見つけて強制終了できます。

「ps」コマンドの使用

ps コマンドは単独で使用できます。 4列の情報を出力します:

  • PID :システムによって定義されたプロセスの一意の識別子。これは、プロセスを停止するために使用する値です。
  • TTY :プロセスが開始された端末。
  • 時間 :プロセスで使用されたCPU時間の合計。
  • CMD :プロセスを生成するコマンド
Linuxでpsコマンドを使用してプロセスを強制終了する方法

オプションを指定せずにコマンドを使用すると、多くの情報が表示されないことに注意してください。これをより便利にするいくつかの方法があります。

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
Linuxでpsコマンドを使用してプロセスを強制終了する方法

8。特定の列を表示する

4つのデフォルトの列に加えて、psを取得できます 情報の追加列を表示します。例:

ps -e -o pid,uname,pcpu,pmem,comm
Linuxでpsコマンドを使用してプロセスを強制終了する方法

-o フラグは、psの特定の出力表示オプションを設定します コマンドの結果。 psの標準表示オプションの完全なリストを参照してください。

9。結果を階層ツリースタイルで表示する

ps -e --forest

これは、ASCIIアートを使用して、プロセスを表示するためのツリースタイルの構造を作成します。フォークされたプロセスと子プロセスを適切な親プロセスの子孫として表示し、一致するように並べ替えます。ツリーの「ブランチ」を非表示にするには、-Hを使用します --forestの代わりに 。

10。プロセススレッドの表示

ps -p 4041 -L
Linuxでpsコマンドを使用してプロセスを強制終了する方法

-L フラグは、psの任意の機能のスレッド表示で切り替わります。特定のプロセスのスレッドを追跡するときに最も役立ちます。

11。すべてのルートプロセスを表示

ps -f -U root -u root
Linuxでpsコマンドを使用してプロセスを強制終了する方法

実際の効果的なルートIDで実行されているすべてのプロセスの検索を実行します。 -fのおかげで、これは完全な長さの形式でそれらを表示します 国旗。 -oと組み合わせることができます 出力をカスタマイズするためのフラグ。

killコマンドを使用してプロセスを停止します

動作に問題のあるプロセスを見つけたら、killコマンドを使用して、実行中のプロセスを強制終了できます。このコマンドは、シグナルを終了するプロセスにシグナルを送信します。プログラムがフリーズしている場合、ほとんどの場合、-9を使用してプログラムを強制的に強制終了する必要があります。 オプション。

Linuxでpsコマンドを使用してプロセスを強制終了する方法

psの出力はインスタントビューです。 htopとは異なり 、動的に更新されません。これは、どのプロセスが誤動作しているかを明確に把握するために、複数回実行する必要がある場合があることを意味します。プロセスの最新のビューを取得するには、Linuxシステム用の他のコマンドを試すことができます。


  1. Linuxでプロセスを強制終了する方法

    Linuxでプロセスを強制終了するために利用できるメソッドは多数あります。このチュートリアルでは、壊れたプロセスを見つけて強制終了する方法を説明します。 プロセスは簡単に孤立する可能性があります。意図的かどうかに関係なく、親プロセスがクラッシュし、子プロセスが実行されたままになる可能性があります。親プロセスが完了した子プロセスを取得できず、ゾンビになる場合があります。 これらのプロセスは両方とも行き詰まっており、手動による介入が必要です。 ジョブ制御を入力します。 壊れたプロセスを強制終了する方法を見てみましょう。 いくつかのコマンドを見てみましょう: トップ (そしてなぜ htop

  2. Linuxでwatchコマンドを使用する方法と例

    Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時