Linuxは、開発者と愛好家の両方に愛されています。 WindowsやOSXなどのオペレーティングシステムでは通常できないことがたくさんできます。
Linuxは、プログラマー、開発者、およびオペレーティングシステムを正しく理解したい人にとって最高のオペレーティングシステムです。現在、Linuxには多くの機能と機能があります。今日は、Linux pgrepとpkillコマンドについて学び、それらを使用してLinuxエクスペリエンスを価値のあるものにする方法を学びます。名前が示すように、pgrepコマンドは名前に基づいてプロセスを検索するために使用され、pkillコマンドは名前に基づいてプロセスを終了または強制終了します。
前提条件
- Linuxオペレーティングシステム(スクリーンショットはcentos / rhelマシンからのものです)
pgrepコマンド
構文:#pgrep [options] pattern
ほとんどのLinuxユーザーは、特定の単語や文字を検索するために使用されるgrepコマンドを認識しています。 pgrepはほぼ同じように機能します。 pgrepコマンドは、使用時にシステムで実行されているプロセス(名前に基づく)を検索するときに使用されます。
pgrepコマンドの例を詳しく見ていきましょう
例:1)特定のユーザーが所有するプロセスIDを一覧表示します(-u)
pgrepを使用すると、指定した基準に一致するプロセスIDが一覧表示されます。たとえば、次のように入力します;
[[email protected] ~]# pgrep -u apache httpd 1274 1275 1278 1282 1283 1284 1286 1291 [[email protected] ~]#
システムは、apacheユーザーが所有するhttpdと呼ばれるすべてのプロセスを一覧表示します。
例:2)複数のユーザーが所有するすべてのプロセスを一覧表示する
rootおよびapacheユーザーが所有するすべてのプロセスを一覧表示し、次のコマンドを実行するとします。
[[email protected] ~]# pgrep -u apache,root
ここでは、ユーザーはコンマ(、)で区切られています
出力:
例:3)マッチングプロセスのカウント数(-c)
apacheとrootユーザーが所有するプロセスの数をカウントしたいとします。以下のコマンドを実行します
[[email protected] ~]# pgrep -u apache -c 8 [[email protected] ~]# pgrep -u root -c 95 [[email protected] ~]#
上記のコマンドでは、「-c」オプションを使用して、ユーザーに関連付けられているプロセスの数をカウントしています。
例:4)プロセスIDとプロセス名(-l&-a)を一覧表示する
ユーザーに関連付けられているプロセスIDとプロセス名を一覧表示し、 -lを使用するとします。 または-a pgrepコマンドのオプション。 -lオプションはプロセス名のみをリストしますが、-aはプロセス名のフルパスをリストします
[[email protected] ~]# pgrep -u apache -l 4353 httpd 4354 httpd 4355 httpd 4356 httpd 4357 httpd 4358 httpd 4359 httpd 4360 httpd [[email protected] ~]# [[email protected] ~]# pgrep -u apache -a 4353 /usr/sbin/httpd -DFOREGROUND 4354 /usr/sbin/httpd -DFOREGROUND 4355 /usr/sbin/httpd -DFOREGROUND 4356 /usr/sbin/httpd -DFOREGROUND 4357 /usr/sbin/httpd -DFOREGROUND 4358 /usr/sbin/httpd -DFOREGROUND 4359 /usr/sbin/httpd -DFOREGROUND 4360 /usr/sbin/httpd -DFOREGROUND [[email protected] ~]#
例5)カスタム区切り文字(-d)を使用してユーザーに関連付けられたプロセスIDを一覧表示する
「-d」を使用します カスタム区切り文字を使用してユーザーのプロセスIDを一覧表示するpgrepの’オプション。コンマ(、)またはスペースで区切ってapacheユーザーに関連付けられたプロセスIDを一覧表示するとします。
[[email protected] ~]# pgrep -u apache -d, 4353,4354,4355,4356,4357,4358,4359,4360 [[email protected] ~]# pgrep -u apache -d" " 4353 4354 4355 4356 4357 4358 4359 4360 [[email protected] ~]#
例:6)最新のプロセス名とそのID(-n)を一覧表示します
rootユーザーが所有する最新のプロセス名とそのIDを一覧表示するとし、pgrepコマンドの下で実行します
構文:
#pgrep -u
最も古いプロセス名とrootユーザーが所有するIDをリストしたいとします。pgrepコマンドの下で実行します
構文:
#pgrep -u
postgresプロセスに関連付けられているすべてのプロセスIDを一覧表示したいとします
そして、それが私たちがpgrepを使用する方法です。 pkillコマンドに移りましょう
pkillコマンドは、コマンドラインを介してプロセスを強制終了するために使用されます。 killコマンドとは対照的に、pkillでは、終了しようとしているプロセスのIDを入力する必要はありません。
では、pkillをどのように使用しますか?単純で、入力として強制終了するプロセス名を指定してpkillと入力します。
構文:
#pkill[オプション]<パターン>
たとえば、postgresプロセスを強制終了する場合は、次のように入力します;
postgresプロセスが実行されている場合、それは即座に終了します。
デフォルトでは、pkillコマンドは「 SIGTERM」を使用します 実行中の信号。このデフォルトのシグナルは、「 –signal」を使用して変更できます。 たとえば、pkillコマンドの「」オプション
-f を使用して、プロセス名ではなく完全なコマンドに基づいてプロセスを強制終了するようにpkillコマンドに指示できます。 オプション。これは何を意味するのでしょうか?システムで2つのpingコマンドが実行されているとします。
ping google.com
ping linuxtechi.com
ここで、要件がpkillを使用して「pinggoogle.com」コマンドを終了することだけである場合。 pkillは次のように使用できます:
-fオプションが使用されていることに注意してください。使用したことがある場合;
その後、両方のコマンドが終了します。
最終的な考え
このガイドでは、実際の例を使用して、コマンドpgrepおよびpkillについてすべて学習しました。
要約すると、pgrepは、使用時にシステムで実行されているプロセスを検索するときに使用されるコマンドです。その構文はpgrep[options]patternです。
一方、pkillは、コマンドラインを介してプロセスを強制終了するために使用されます。その構文はpkill[options]
2つのコマンドを使用して、Linuxの機能と柔軟性をさらに活用できます。すべての情報が揃ったので、どう思いますか?コメントを残していただければ、喜んで対応させていただきます。[[email protected] ~]# pgrep -u root -n -l
11255 kworker/0:2
[[email protected] ~]#
例:7)最も古いプロセス名とそのID(-o)を一覧表示します
[[email protected] ~]# pgrep -u root -o -l
1 systemd
[[email protected] ~]#
例:8)その名前の検索プロセス
[[email protected] ~]# pgrep postgres -l
1233 postgres
1234 postgres
4465 postgres
4469 postgres
[[email protected] ~]#
pkillコマンド
例:9)プロセスをその名前で強制終了します(pkill {process_name})
[[email protected] ~]# pkill postgres
[[email protected] ~]#
例:10)別のシグナル(–signal)を送信してプロセスを強制終了する
[[email protected] ~]# pkill --signal SIGKILL postgres
[[email protected] ~]#
例:11)完全なコマンド(-f)に基づくkillプロセス
[[email protected] ~]# pkill -f "ping google.com"
[[email protected] ~]#
[[email protected] ~]# pkill ping