このコマンドをbashスクリプトで起動しました:
rsync -av $sourcedir/ $destdir/
その特定のコマンドの PID を同じスクリプト内の変数に格納するにはどうすればよいですか?
私は試しました:
rsync -av --stats $sourcedir/ $destdir/ && pid=$(echo $$)
しかし、ログファイルでその操作について報告されたpidは、$pidをエコーして出力されたものとは異なります
助けてくれてありがとう!
rsync -av --stats $sourcedir/ $destdir/ & pid=$!
ここでの使用に注意してください&
。コマンドを並行して実行します。
コマンド ( ) は、代入 ( ) を作成した時点で既に終了しているため、を作成した場合rsync && pid=$!
、それは間違っています。そのため、明らかな理由から、その pid を変数に保存することは意味がありません。rsync
pid=$!
PID は に格納されて$!
おり、おそらく、プログラムの終了後ではなく、プログラムの実行中に PID を取得する必要があります。
rsync -av --stats $sourcedir/ $destdir/ & pid=$!