Linux シェル,最新のバックグラウンドで起動したPIDを取得

スポンサーリンク

鍛錬 405

Linux シェルスクリプト,最新のバックグラウンドで起動したPIDを取得する

最新のバックグラウンドで起動したコマンド等のPID(プロセスID)を取得するには、$! を使用します。
 
使用方法は、以下に示す通りです。

$!
スポンサーリンク

シェルスクリプト

以下は、バックグラウンドで起動したコマンド sleep のPIDを取得しているシェルスクリプト、get_backpid.sh です。

sleep コマンドを立て続けにバックグラウンドで3回起動し、それぞれのPIDを変数に格納しています。

#!/bin/sh

sleep 30s &
pid_1=$!

sleep 30s &
pid_2=$!

sleep 30s &
pid_3=$!

echo "1回目に起動した sleep のPID = $pid_1"
echo "2回目に起動した sleep のPID = $pid_2"
echo "3回目に起動した sleep のPID = $pid_3"
スポンサーリンク

実行結果

以下は、シェルスクリプト get_backpid.sh を実行して、バックグラウンドで起動した sleep のPIDを取得しています。

関連記事:プログラム名やコマンド名を元にプロセスIDを取得する

***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ pidof sleep
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./get_backpid.sh
1回目に起動した sleep のPID = 3521
2回目に起動した sleep のPID = 3522
3回目に起動した sleep のPID = 3523
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ pidof sleep
3523 3522 3521

 
上記に示した通り、1,2,3回目のPIDがそれぞれ、3521,3522,3523 であることが分かりました。

タイトルとURLをコピーしました