Linux シェル,シェルスクリプト自身のプロセスIDを取得する

スポンサーリンク

鍛錬 40

Linux シェルスクリプト,シェルスクリプト自身のプロセスIDを取得する

シェルスクリプト自身のプロセスIDを取得するには、$$ を使用します。

関連記事:Linux シェル,実行中のシェルスクリプト自身の名前を取得する
 
使用方法は、以下に示す通りです。(取得したプロセスIDを変数に格納する場合)

変数=$(echo $$)
スポンサーリンク

シェルスクリプト

以下は、シェルスクリプト自身のプロセスIDを取得するシェルスクリプト get_pid.sh です。

シェルスクリプト内に記述している sleep 60s は、シェルスクリプトがすぐに終了してしまうと、ps でプロセスを確認する暇がないため記述しています。

#!/bin/sh

tmp=$(echo $$)
echo "process id = $tmp"

sleep 60s
スポンサーリンク

実行結果

以下は、次の順序で実行しています。

  1. シェルスクリプトをバックグラウンドで実行。
  2. ps でシェルスクリプトのプロセスIDを確認。
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./get_pid.sh &
[1] 2879
***@ubuntu:~/***/test/shell$ process id = 2879

***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ps x | grep get_pid.sh | grep -v grep
  2879 pts/4    S      0:00 /bin/sh ./get_pid.sh

 
上記に示した通り、シェルで取得したプロセスIDと、ps で確認したプロセスIDが一致していることが確認できました。

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