現在お買い物カゴには何も入っていません。
プロセス管理
pgrepとは
プロセス名やその他の属性に基づいてプロセスを検索するコマンドラインツールです。
pgrep -u root sshd # rootユーザーが実行しているsshdプロセスを検索
pkillとは
pkill -u username # 特定ユーザーの全プロセスを終了
pkill firefox # プロセス名がパターンに一致する場合にSIGTERM
psとは
現在実行中のプロセスに関する情報を表示するコマンドラインツールです。
ps aux # 全ユーザーの全プロセスを詳細表示
killとは
プロセスIDを指定してプロセスにシグナルを送信するコマンドラインツールです。
kill -9 1234 # プロセスID 1234のプロセスを強制終了
主要なオプションには以下があります:
-9
(SIGKILL): プロセスを強制終了します。プロセスは即座に終了し、クリーンアップ処理を行う機会がありません。-15
(SIGTERM): デフォルトのシグナルで、プロセスに正常終了を要求します。-1
(SIGHUP): プロセスに設定の再読み込みを要求します。
例:kill -9 1234
はプロセスID 1234のプロセスを強制終了します。
fg, bg, jobsの使い方
これらのコマンドはジョブ制御に使用されます。
これらのコマンドを使用することで、複数のジョブを効率的に管理し、シェル上での作業を柔軟に行うことができます。
jobs
jobs
コマンドは、現在のシェルセッションでバックグラウンドで実行されているジョブのリストを表示します。
$ jobs
[1] + running sleep 100 &
[2] - running nano file.txt
fg
fg
コマンドは、バックグラウンドジョブをフォアグラウンドに移動します。
$ fg %1 # ジョブ番号1をフォアグラウンドに移動
bg
bg
コマンドは、一時停止されたジョブをバックグラウンドで再開します。
$ sleep 100
^Z
[1] + 18653 suspended sleep 100
$ bg
[1] + 18653 continued sleep 100
キー操作
ジョブをバックグラウンドで実行する方法には、主に2つあります:
- コマンド実行時にバックグラウンドで起動する
- 実行中のジョブをバックグラウンドに移動する
コマンド実行時にバックグラウンドで起動する
コマンドの末尾に `&` を付けることで、そのコマンドをバックグラウンドで実行できます。
$ sleep 100 &
[1] 12345
この場合、sleep 100
コマンドがバックグラウンドで実行され、ジョブ番号と プロセスID が表示されます。
実行中のジョブをバックグラウンドに移動する
実行中のジョブをバックグラウンドに移動するには、以下の手順を踏みます:
- 実行中のジョブを一時停止する:
Ctrl + Z
キーを押します。 - 一時停止したジョブをバックグラウンドで再開する:
bg
コマンドを使用します。
$ sleep 100
^Z
[1] + 12345 suspended sleep 100
$ bg
[1] + 12345 continued sleep 100
この操作により、フォアグラウンドで実行していたジョブをバックグラウンドに移動できます。
^Z
とあるのはCtrl + Z
キーのことです。
その他のキー操作
Ctrl + C
: フォアグラウンドで実行中のジョブを終了します。Ctrl + D
: 標準入力の終了(EOF)を送信します。多くのプログラムはこれにより終了します。
これらのキー操作と jobs
、fg
、bg
コマンドを組み合わせることで、効率的にジョブを管理できます。バックグラウンドジョブの使用により、複数のタスクを同時に実行しながら、シェルの対話的な使用を継続できます。