2

nohup 経由でコマンドを実行するための bash スクリプトがあります。スクリプトにプロセス ID が必要です。

私はこれを試しました:

#!/bin/bash
nohupResult=$((nohup mycommand > nohup.out &) 2>&1)
echo $nohupResult
exit 0

しかし、$nohupResultはヌルです。

私もこれを試しました:

nohupResult=`nohup mycommand > nohup.out &`

しかし、$nohupResultどちらもnullです。

シェルでコマンドを実行すると、次のnohup mycommand > nohup.out &ような出力が得られます。

[1] 447019

しかし、スクリプトでプロセス ID を取得するにはどうすればよいでしょうか?

どんな助けでも大歓迎です。

4

2 に答える 2

7

最後のバックグラウンド ジョブの pid は$!

nohup mycommand &
pid=$!
于 2013-05-22T13:51:52.817 に答える
3

あなたはただ使うことができます:

echo $!

これにより、最後に開始されたバックグラウンド プロセスの PID が返されます。

于 2013-05-22T13:52:15.777 に答える