バックグラウンドプログラムの実行中に画面セッションを開始する

バックグラウンドプログラムの実行中に画面セッションを開始する

ほぼ2日間、LinuxセッションでMatlabを実行しましたが、ネットワーク接続が失敗した場合、計算結果が失われるのではないかと心配しました。 Matlabを背景に移動して「スクリーン」を起動すると、この問題は解決しますか?

答え1

いいえ、プロセスの開始後に画面セッションを開始することは役に立ちません。あなたが試すことができるのは、プロセスをバックグラウンドに置くことだけです。私のLinux(Mint 17)では、別のシェルで試してみて、バックグラウンドに「sleep 100000」を入れました。

その後、セッションからログアウトして新しいセッションを開始しました。プロセスsleep 100000は引き続き実行され、親プロセスはプロセス1(initプロセス)になります。

ステップは次のとおりです。

sleep 100000

Ctrl+z

bg 1

ps -ef |grep sleep
testuser   7482  7320  0 14:44 pts/11   00:00:00 sleep 10000000

ログアウト

ログイン

ps -ef |grep sleep
testuser   7482     1  0 14:44 ?        00:00:00 sleep 10000000

Solarisなどの他のシステムには、nohup停止を防ぐためにpidを指定できるコマンドがあります。

答え2

習慣。 Matlab出力はscreenセッション中の魔法のようには見えません。これはscreen、Matlabセッションを開始してから開始する必要があるためです。同様に適用されますtmux

この実行中のプロセスの標準入力/出力を別のプロセスに再接続しようとします。レプテル

関連情報