私はファイルを実行PuTTY
するためにbash
ファイルを送信するために使用しAmazon Web Services EC2
ていR
ます。ファイルPuTTY
を送信すると、のカーソルが消え、bash
すべてのR
ファイルの実行が終了するまで再表示されません(現在、約40分後、最終的には10〜20時間後)。
さまざまな大学やNGOでクラスターを使用しているとき、私はこれまでこれを見たことがありません。歴史的に、カーソルは常にすぐに再表示されてきました。
すべてのR
ファイルの実行が完了する前にラップトップコンピューターをシャットダウンすると、R
ファイルがクラッシュしたり、実行が完了しなかったりしますか?
カーソルをすぐに再表示する方法はありますPuTTY
か?
さまざまな大学やNGOでクラスターを使用しているとき、私はこれまでこれを見たことがありません。歴史的に、カーソルは常にすぐに再表示されてきました。
私の知る限り、違いは、ほとんどのクラスターがqsub
、バッチジョブの送信などの特別なコマンドを使用するように指示していることです。これらのコマンドは、スクリプトをすぐには実行しないため、すぐに返されます。スクリプトをキューに追加するだけで、別のシステムがスクリプトを実行する場所とタイミングを決定します。
ただし、AWSでは、そのようなものはありません。完全にプレーンなLinuxシステムです。あなたが直接経由でbashスクリプトを実行した場合./myscript.sh
やbash myscript.sh
、それはない、あなたの端末ですぐに右が実行します。また、実行する他のプログラムと同様に、プログラムが終了するまでシェルプロンプトは再表示されません。
すべてのRファイルの実行が完了する前にラップトップコンピューターをシャットダウンすると、Rファイルがクラッシュするか、実行が完了しなくなりますか?
はい、端末が閉じているとき(つまり、接続が「ハングアップ」しているとき)、端末から実行されているすべてのプロセスは、終了するシグナルを受け取ります。彼らはそれを無視するかもしれませんが、通常彼らはすぐに終了します。
PuTTYにカーソルをすぐに再表示させる方法はありますか?
Linuxで長時間実行されるタスクには、次の2つの最も一般的なオプションがあります。
Bashのジョブ制御を使用&
します。つまり、追加してコマンドをバックグラウンドで実行します。例えば:
./slowscript.sh &
を追加するのを忘れた場合は&
、を押しCtrlZてからbg
コマンドを押して、すでに実行中のプログラムをバックグラウンドで実行できます。
SSH接続を閉じると、ジョブ制御下のプログラムは引き続き終了することに注意してください。これを回避するには、disown
各ジョブも実行する必要があります。そのステータスを確認することはできなくなりますが、ハングアップ時に強制終了されることもなくなります。
tmuxやScreenなどの「ターミナルマルチプレクサ」を使用します。バッチジョブを処理する代わりに、端末全体をバックグラウンドに置くことができます。
したがって、最初に実行tmux
して「取り外し可能な」端末を作成し、そこからRスクリプトを開始し、実行中にを押しCtrlBてDから切り離すことができます。
(デタッチを忘れた場合でも、切断すると自動的に発生します。プログラムはtmux内で実行されたままになります。)後で、を使用tmux at[tach]
して再接続できます。
一部のLinuxディストリビューションでは、systemdを使用してバックグラウンドジョブを開始することもできます。この機能は、最初にで有効にする必要がありますsudo loginctl enable-linger $USER
。
有効にすると、次を使用してバックグラウンドタスクを開始できますsystemd-run
。
systemd-run --user --same-dir ./myscript.sh
後でsystemctl --user .....
、ジョブのステータスを確認するために使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加