シェルスクリプト - サブプロセス - バックグラウンドプロセス

シェルスクリプト - サブプロセス - バックグラウンドプロセス

私は次のような状況にあります。

ルートはScript_A.shサーバー上で実行され、トリガーされるまでスリープモードのままです。トリガーされると、関数が呼び出され、Script_B.shサーバー上で関数が繰り返され、何をすべきかが決まります。ジョブリストが作成されると、プロセス所有者Script_C.shsu - $sUser -c "/path/to/correct/script.sh")に送信されます。

su - $sUser -c "/path/to/correct/script.sh"私の質問:これをバックグラウンドで実行する方法はありますか? 3番目のスクリプトを順番に実行したくありません。

答え1

&いつものように最後に置くのが私にとって効果的です。

su - "$sUser" -c "/path/to/script.sh" &

それでも問題が解決しない場合は、問題の詳細を含めるように質問を編集する必要があります。

答え2

コマンドを追加することは、&バックグラウンドでコマンドを実行する方法です。だから:

su - $sUser -c "/path/to/correct/script.sh" &

または、スクリプトがスクリプトBからSIGHUP(停止信号)を受信しないようにするには、次のようにします。disown

su - $sUser -c "/path/to/correct/script.sh" & disown

これを使用するときに必要な正確な効果をもたらすかどうかは100%確信できませんsu。このnohupコマンドは端末への出力を停止するため、この種の労力にも役立ちますが、特定の状況によって異なります。

この回答&disown、およびの使用に関する追加の説明がありますnohup

関連情報