リモートLinuxのSecureCRTを介してWindows上でGaussianを実行するのに問題があります。
ガウス
ガウス各種サブ実行ファイルの生成(「リンク)走っている間。たとえば、実行してGaussianを起動すると、などの特定のnohup g09 < test.in > test.out 2> test.out &
状況でg09
別のものを生成しlink
ますl301.exe
。l502.exe
ガウス実行
リモートLinuxボックスに接続し、以下を使用してGaussianを実行するときnohup ${Path_Of_Gaussian}/g09 < jobname.in > jobname.out 2> jobname.out &
:
exit
を入力して押してシェルを終了すると、EnterLinux上のGaussianの実行中に終了できます(特定の実行可能ファイルの名前は特定の時間によって異なります)。コンピュータをシャットダウンすると(そしてSecureCRTも終了します)、LinuxのGaussianがシャットダウンし、「電話を切る」と文句を言います。
exit
入力して押しEnterて終了し、ログインするとコンピュータをシャットダウンでき、LinuxのGaussianは引き続き実行されます。jlliagre
この場合、答えは機能しません。
簡単なコマンドの実行
たとえば、何もしませんが(つまり、入力と出力を処理しません)、10分間待機する単純な実行可能ファイルを考えてみましょう。私がそれを実行したときnohup ${Path_Of_Executable}/executable &
:
exit
と入力して押してシェルを終了すると終了Enterでき、実行可能ファイルはLinux上で実行され続けます。コンピュータをシャットダウンすると(SecureCRTがシャットダウン)、Linuxで実行されている実行可能ファイルがシャットダウンされます。
exit
[Exit]と入力してログインすると、Enterコンピュータをシャットダウンできます(SecureCRTが終了します)、Linuxの実行可能ファイルは引き続き実行されます。知識豊富な回答のように
jlliagre
実行すると、nohup ${Path_Of_Executable}/executable </dev/null >/dev/null 2>&1 &
電源が切れ、Linux上の実行可能ファイルは引き続き実行されます。
つまり、nohup
シェルをシャットダウンする前にローカルシステムの電源を切ると、リモートシステムで実行されているガウスがシャットダウンするのはなぜですか?
答え1
思考 #1 - 否定
問題を説明する方法によると、Guassianが作成されたシェルにまだ関連付けられているようです。
実行する代わりに試すことができるもう1つの作業は、nohup
同じdisown -a
操作を実行する必要がありますが、SIGHUPを受信する生成されたプロセスを切断することです。
アイデア#2 - 別のBashで梱包
もう一つのアイデアは、Guassianをこのように呼び出すことです。
- リモートコンピュータにログイン
- いいえバッシュ
- このセカンダリシェルでGuassianを実行してください。
これにより、ローカルコンピュータが切断されたときにGuassianがシャットダウンするのを防ぎます。
アイデア#3 - tmuxまたはscreenを使用する
私はこれに似たアプリケーションに触れたことがありますが、通常は机に頭を強く当てるのではなく、Screen内のリモートシステムに手を伸ばしてアプリケーションを実行しますscreen
。tmux
これは、プロセスをよりよく保護し、後で再接続できるという追加の利点を提供します。
答え2
これにより、アプリケーションがよりよく分離されます。
nohup ${PATH_OF_APPLICATION}/app </dev/null >/dev/null 2>&1 &
何らかの理由でまだ機能しない場合は、以下を試してください。
echo ${PATH_OF_APPLICATION}/app | at now