サブプロセスでCtrl + cを押すと、スクリプトの前のnohupされたプロセスが強制終了されます
これがSOに属しているかどうかはわかりませんでした(コーディングのバグであるため)が、使用しているソフトウェアの微妙さについてはもっと知識があると思いました(したがって、おそらくU&Lも考慮することができます)。 最小限のコードスクリプトを次に示します(完全なスクリプトの編集を参照してください。この方法で行う理由があります)。 #/bin/bash nohup {SERVERCOMMAND} > currentOutput.log 2>&1 & less +F currentOutput.log サーバーがバックグラウンドで実行され、ログファイルに出力されます。 次にfollow、そのログファイルを使用しless +Fます。これを終了するには、を押す前にctrl+をc押す必要がありますQ。 起こるのは、コマンド内で(停止するために)I ctrl+ cを実行すると、先頭にあるサーバーが何らかの理由で強制終了されます。他に影響はありません。私がすることができます+ (サーバーが殺されているので、新たな情報を取得しない)、再びログを尾行開始とする私がヒットした場合、スクリプトの実行の残りの部分を正常に。lesstailingnohupshiftfQ これが起こる理由を知っていますか?それを避ける方法/私が使用する必要がある他の何か? PS サーバープログラムは^C、問題の可能性があるをリッスンしている可能性があります。それを止めるために私にできることはありますか?たとえば{SERVERCOMMAND}、単独で(ブロッキング方式で)実行する場合、ctrl+をc押すとすぐに殺されません。印刷しますReceived ^C signal, shutting down(そして、それ自体を殺します)。これは私^Cが入るときに起こっていることですless(最終結果Received ^C signal, shutting downがログに書き込まれます)。 PPS 私はいくつかのことを試してきました(どれもうまくいきませんでした)。 変更してスクリプトから標準入力を切断しようとしています nohup {SERVERCOMMAND} > currentOutput.log 2>&1 & to nohup echo '' | {SERVERCOMMAND} > currentOutput.log 2>&1 & or …