GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで実行中のプロセスを強制終了する方法

Linuxでは、実行中のサービス、アプリケーション、またはスクリプトのインスタンスはプロセスと呼ばれます。コマンド、プログラム、またはアプリケーションを実行すると、そのためのプロセスが作成されます。各プロセスには、特定のユーザーとグループに関連付けられた独自のプロセスIDがあります。プロセスが大量のリソースを消費したり、応答しなくなったりした場合は、それらを強制終了する必要があります。この場合、killコマンドを使用して、サーバーを再起動せずにプロセスを停止できます。

この投稿では、Linuxで実行中のプロセスを強制終了する方法を紹介します。

前提条件

  • Atlantic.NetクラウドプラットフォームでLinuxを実行しているサーバー
  • サーバーで構成されているrootパスワード

Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したLinuxオペレーティングシステムを選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

Linuxで実行中のプロセスを表示

実行中のすべてのプロセスのリストを取得する最も簡単で簡単な方法は、topコマンドを使用することです。以下に示すようにtopコマンドを実行して、実行中のすべてのプロセスを一覧表示できます。

top

実行中のすべてのプロセスが次の出力に表示されます:

Tasks: 344 total,   1 running, 297 sleeping,   0 stopped,   0 zombie
%Cpu(s): 22.6 us,  6.0 sy,  0.1 ni, 67.1 id,  3.9 wa,  0.0 hi,  0.4 si,  0.0 st
KiB Mem :  7580260 total,  2103076 free,  3174408 used,  2302776 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  3901388 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                   
 5994 vyom      20   0   44344   4160   3444 R  11.8  0.1   0:00.03 top                                                                       
 2206 vyom      20   0 1046476  89792  60368 S   5.9  1.2   1:15.26 Xorg                                                                      
 2359 vyom      20   0 3471324 216412  97596 S   5.9  2.9   1:58.27 gnome-shell                                                               
 2745 vyom      20   0 1776552 136144  99424 S   5.9  1.8   1:09.93 skypeforlinux                                                             
 2775 vyom      20   0 37.371g 169524 117660 S   5.9  2.2   1:05.09 skypeforlinux                                                             
 5655 root      20   0       0      0      0 I   5.9  0.0   0:00.30 kworker/u8:3-ev                                                           
    1 root      20   0  160356   9464   6632 S   0.0  0.1   0:03.50 systemd                                                                   
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                  
    3 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_gp                                                                    
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_par_gp                                                                
    6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H-kb                                                           
    9 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 mm_percpu_wq                                                              
   10 root      20   0       0      0      0 S   0.0  0.0   0:00.40 ksoftirqd/0                                                               
   11 root      20   0       0      0      0 I   0.0  0.0   0:03.58 rcu_sched                                                                 
   12 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 migration/0                                                               
   13 root     -51   0       0      0      0 S   0.0  0.0   0:00.00 idle_inject/0                                                             
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/0                                                                   
   15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/1                                                                   
   16 root     -51   0       0      0      0 S   0.0  0.0   0:00.00 idle_inject/1                                                             

kを押してプロセスIDを入力すると、トップインターフェイスから直接プロセスを強制終了できます。

psコマンドを使用してプロセスを見つける

psは、実行中のプロセスの完全なリストを指定された形式で表示するコマンドラインユーティリティです。

psコマンドの基本的な構文を以下に示します。

ps [OPTION]

各オプションの簡単な説明を以下に示します:

  • -a –すべてのユーザーの実行中のプロセスを表示します。
  • -u –各プロセスに関する詳細情報を表示します。
  • -x –デーモンによって制御されるプロセスを表示します。

たとえば、次のコマンドを実行して、すべてのプロセスの詳細なプロセスリストを取得します。

ps aux

次の出力が得られます:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.1 160356  9464 ?        Ss   15:51   0:03 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    15:51   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   15:51   0:00 [rcu_gp]
root         4  0.0  0.0      0     0 ?        I<   15:51   0:00 [rcu_par_gp]
root         6  0.0  0.0      0     0 ?        I<   15:51   0:00 [kworker/0:0H-kb]
root         9  0.0  0.0      0     0 ?        I<   15:51   0:00 [mm_percpu_wq]
root        10  0.0  0.0      0     0 ?        S    15:51   0:00 [ksoftirqd/0]
root        11  0.1  0.0      0     0 ?        I    15:51   0:03 [rcu_sched]
root        12  0.0  0.0      0     0 ?        S    15:51   0:00 [migration/0]
root        13  0.0  0.0      0     0 ?        S    15:51   0:00 [idle_inject/0]
root        14  0.0  0.0      0     0 ?        S    15:51   0:00 [cpuhp/0]
root        15  0.0  0.0      0     0 ?        S    15:51   0:00 [cpuhp/1]
root        16  0.0  0.0      0     0 ?        S    15:51   0:00 [idle_inject/1]
root        17  0.0  0.0      0     0 ?        S    15:51   0:00 [migration/1]
root        18  0.0  0.0      0     0 ?        S    15:51   0:00 [ksoftirqd/1]
root        20  0.0  0.0      0     0 ?        I<   15:51   0:00 [kworker/1:0H-kb]
root        21  0.0  0.0      0     0 ?        S    15:51   0:00 [kdevtmpfs]
root        22  0.0  0.0      0     0 ?        I<   15:51   0:00 [netns]

上記のコマンドは、実行中のすべてのプロセスを表示します。 grepコマンドをpsコマンドと一緒に使用して、特定のプロセスのPIDを取得できます。

たとえば、ApacheプロセスのPIDを取得するには、次のコマンドを実行します。

ps aux | grep apache

次の出力が得られます:

root      1309  0.0  0.0  73992  4748 ?        Ss   15:52   0:00 /usr/sbin/apache2 -k start
www-data  1310  0.0  0.0 1285068 4620 ?        Sl   15:52   0:00 /usr/sbin/apache2 -k start
www-data  1311  0.0  0.0 1285068 4644 ?        Sl   15:52   0:00 /usr/sbin/apache2 -k start

pidofを使用することもできます 特定のプロセスのPIDを取得するコマンド。

pidof apache2

次の出力が得られます:

1311 1310 1309

Linuxでプロセスを強制終了する

この時点で、任意のプロセスのPIDを取得する方法を知っています。これで、killコマンドを使用して、実行中のプロセスを強制終了できます。

単一のプロセスを強制終了するには、次のコマンドを実行します。

kill PID

または

kill -9 PID

複数のプロセスを強制終了するには、次のコマンドを実行します。

kill -9 PID1 PID2 PID3

名前でプロセスを強制終了することもできます。 スキルを使用できます 名前でプロセスを強制終了するコマンド。

Apacheプロセスを強制終了するには、次のコマンドを実行します。

pkill apache2

killallを使用することもできます 名前でプロセスを強制終了するコマンド:

killall mysqld

結論

この投稿では、Linuxでプロセスを見つけて強制終了する方法について説明しました。サーバーを再起動せずに、応答しないプロセスを自分で強制終了できるようになりました。 Atlantic.NetのVPSホスティングでお試しください!


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

  2. Linuxでユーザーが実行するプロセスに制限を設定する方法

  3. Linux –実行中のLinuxディストリビューションを特定する方法は??

  1. Linuxの特定のポートで実行されているプロセスを強制終了する方法は?

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

  3. Linux の特定のポートで実行されているプロセスを強制終了するには?

  1. Linuxでプロセスを強制終了する方法は?終了するコマンド

  2. zshですべてのバックグラウンドプロセスを強制終了するには?

  3. t よりも古いプロセスを強制終了するにはどうすればよいですか?