実行に数時間かかるbashスクリプトがあります。実行中に、他のことをしたいと思います。これには、ログアウトまたはインターネットからの切断が含まれる場合があります(私のスクリプトはさまざまなコンピューターでネットワークテストを実行します)。
リモート端末からテストを実行し、実行中に端末からログアウトできるコマンドがあることを理解しています。このコマンドが何であるか誰か知っていますか?
探しているコマンドはNohup
です。
screen
もあります。これは、何かを実行したままにしておきたいが、後で戻ってインタラクティブに再接続する場合に使用します。
Nohup
は、コマンドが起動後にユーザー入力を期待しない場合はより単純であり、プログラムをインタラクティブに実行できるようにする場合はscreen
がより優れています。
これにはNohup
を使用します。私の場合、action.py
という名前のpythonスクリプトがありました。Nohup python action.py &
を使用してリモートサーバーでスクリプトを実行し、ターミナルを閉じました。後で実行が終了したら、プロセスからのすべての出力は、Nohup.out
と同じディレクトリに作成されるaction.py
に表示されます。ファイルがすでに存在する場合は、さらに出力が追加されます。
唯一の問題は、スクリプトがいつコースを実行したかを知らないことです。そのため、私の場合は、完了時にメールを送信してもらいました。これが誰かを助けたことを願っています!