nohupはSSHセッションで次のプロンプトを表示しません

Aug 20 2020

リモートUbuntuシステムでSSH経由で接続していると仮定します。nohup接続が切断される可能性がある場合に使用して、そこでスクリプトを実行し、そのログをファイルにリダイレクトしたいと思います。私が実行するコマンドは

nohup bash myscript.sh > log.txt &

次に、端末はスクリプトのPIDとメッセージを出力します。

nohupは入力を無視し、stderrをstdoutにリダイレクトします

カーソルがそこでフリーズし、Ctrl+Dを指定してSSHセッションを終了し、再ログインしない限り、他のコマンドを実行できません。SSHセッションを開いたままにして、再ログインせずに次のターミナルプロンプトに進むことをお勧めします。これを達成する方法はありますか?

回答

1 roaima Aug 21 2020 at 03:39

このコマンドは、期待どおりにバックグラウンドで実行されます。ただし、この特定の例では、出力メッセージがシェルプロンプトの後に部分的に書き込まれる競合状態があります。

視覚的な結果は、シェルプロンプトがnohupメッセージの前にあるか、メッセージが完全に上書きされていることです。

実際の結果は、シェルがプロンプトを書き出したため、次のコマンドの準備ができているということです。Enterキーを押して新しいプロンプトを生成するか、とにかく次のコマンドを入力することができます。