Gaussian はリモート Linux システムで nohup を使用して実行され、シェルをシャットダウンする前にローカルシステムの電源がオフになるとシャットダウンします。

Gaussian はリモート Linux システムで nohup を使用して実行され、シェルをシャットダウンする前にローカルシステムの電源がオフになるとシャットダウンします。

リモートLinuxのSecureCRTを介してWindows上でGaussianを実行するのに問題があります。

ガウス

ガウス各種サブ実行ファイルの生成(「リンク)走っている間。たとえば、実行してGaussianを起動すると、などの特定のnohup g09 < test.in > test.out 2> test.out &状況でg09別のものを生成しlinkますl301.exel502.exe

ガウス実行

リモートLinuxボックスに接続し、以下を使用してGaussianを実行するときnohup ${Path_Of_Gaussian}/g09 < jobname.in > jobname.out 2> jobname.out &

  1. exitを入力して押してシェルを終了すると、EnterLinux上のGaussianの実行中に終了できます(特定の実行可能ファイルの名前は特定の時間によって異なります)。

  2. コンピュータをシャットダウンすると(そしてSecureCRTも終了します)、LinuxのGaussianがシャットダウンし、「電話を切る」と文句を言います。

  3. exit入力して押しEnterて終了し、ログインするとコンピュータをシャットダウンでき、LinuxのGaussianは引き続き実行されます。

  4. jlliagreこの場合、答えは機能しません。

簡単なコマンドの実行

たとえば、何もしませんが(つまり、入力と出力を処理しません)、10分間待機する単純な実行可能ファイルを考えてみましょう。私がそれを実行したときnohup ${Path_Of_Executable}/executable &

  1. exitと入力して押してシェルを終了すると終了Enterでき、実行可能ファイルはLinux上で実行され続けます。

  2. コンピュータをシャットダウンすると(SecureCRTがシャットダウン)、Linuxで実行されている実行可能ファイルがシャットダウンされます。

  3. exit[Exit]と入力してログインすると、Enterコンピュータをシャットダウンできます(SecureCRTが終了します)、Linuxの実行可能ファイルは引き続き実行されます。

  4. 知識豊富な回答のように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をこのように呼び出すことです。

  1. リモートコンピュータにログイン
  2. いいえバッシュ
  3. このセカンダリシェルでGuassianを実行してください。

これにより、ローカルコンピュータが切断されたときにGuassianがシャットダウンするのを防ぎます。

アイデア#3 - tmuxまたはscreenを使用する

私はこれに似たアプリケーションに触れたことがありますが、通常は机に頭を強く当てるのではなく、Screen内のリモートシステムに手を伸ばしてアプリケーションを実行しますscreentmux

これは、プロセスをよりよく保護し、後で再接続できるという追加の利点を提供します。

答え2

これにより、アプリケーションがよりよく分離されます。

nohup ${PATH_OF_APPLICATION}/app </dev/null >/dev/null 2>&1 &

何らかの理由でまだ機能しない場合は、以下を試してください。

echo ${PATH_OF_APPLICATION}/app | at now

関連情報