SSHコマンドの保持

SSHコマンドの保持

まず、理解しtmuxていますscreen。私のジレンマ:SSHでシェルスクリプトを起動しましたが、時間がかかると予想してコンピュータを一晩入れました。

シェルコマンドを終了して再起動できません。それ以外の場合は、最初から再開されます。シェルスクリプトを終了せずにSSH接続を終了したいと思います。コンピュータを切断して安全にコンピュータを切断できるように、遡及的に実行できるタスク(つまり、コマンドがSSH端末で実行されます)はありますか?

答え1

可能かどうか知りたいですdetach。通常、既存のターミナルセッションでこれを行うと、シェルを終了でき、「分離された」プロセスは引き続き実行されます。まず、プロセスを一時停止してバックグラウンドで実行する必要があります。効果はこのコマンドを使用したのと同じですnohup

しかし、あなたのプロセスがまだ終了する可能性があることを示すいくつかの回答が見つかりましたsystemd。これまで直接見たことがありませんのでご注意ください。

編集する: *よく*「分離」の場合は、disown少なくともCentOSとその類似項目をお読みください。私が誤解したすべての人に謝罪します。どこか「分離」命令が出た記憶があるのに…

答え2

あなたができることの1つは、一時停止操作を使用することですCTRL+Z。その後、fgそのコマンドのフォアグラウンドジョブまたはそのコマンドのバックグラウンドジョブに進みますbg。問題に応じて、このbgコマンドが必要です。その後、jobsセッションを終了する前にコマンドが機能していることを確認できます。警告のように、セッションを終了した後は、スクリプトが完了した時期または完了したかどうかを追跡することはできません(スクリプトが実行した操作を除く)。要約すると:

CTRL+Z
$ jobs
$ bg
$ jobs
$ exit

別の免責事項:接続を切断し、コマンドをバックグラウンドで実行し続ける環境を設定したかどうかは、システムで作業している人以外は誰にもわかりません。ほとんどの設定で動作しますが、不明です。可能であれば、テストスクリプトでテストし、停止して再起動できることを確認します。

関連情報