Amazon

2013年9月16日月曜日

バックグラウンド起動したプロセスのプロセスIDを取得する

バックグラウンド起動したプロセスのプロセスIDを取得しておくと、メインのシェルが終了する時にバックグラウンドのプロセスをコントロールする手段が得られます。 バックグラウンド起動したあと$!でプロセスIDを参照することができます。
$ sleep 300 &
[1] 4126
$ echo $!
4126
$ ps -p 4126
  PID TTY          TIME CMD
 4126 pts/5    00:00:00 sleep
$ kill -9 `echo $!`
$ ps -p 4126
  PID TTY          TIME CMD
[1]+  強制終了            sleep 300
$ echo $!
4126
$ sleep 200 &
[1] 4581
$ echo $!
4581
$
$!は、新たなバックグラウンドプロセスを起動するまで保持されます。 複数のプロセスを起動する場合には、環境変数に保管しておく必要があります。

0 件のコメント: