フォアグラウンドでプロセスを開始し、そのPIDをファイルに保存する方法は?

フォアグラウンドでプロセスを開始し、そのPIDをファイルに保存する方法は?

プロセスの起動時にPIDを保存する方法はありますか?開始されたプロセスが完了するまで、スクリプトはコマンドラインに戻るべきではありません。そして、Ctrl+を介してプロセスを終了する可能性も維持する必要があります。C

答え1

command &
echo $! > file
fg > /dev/null

ジョブ制御がない場合は、まず次のコマンドを使用してモニターモードをオンにします。

set -m

モニターモードの詳細については、こちらをご覧ください。Bashでモニターモードをオフにする

答え2

Ctrl正確な動作はわかりませんが、Cジョブ制御を使用しない解決策は次のとおりです。

( command & echo $! > file; wait )

関連情報