完了するまでに時間がかかるプログラムがあります。 sshを介してrootとして実行されています。
ログアウトした後も実行を継続したいのですが、これは可能ですか、これをどのように達成しますか?
フォアグラウンドでプログラムを実行していると仮定すると、ctrl-Zを押します、その後:
[1]+ Stopped myprogram
$ disown -h %1
$ bg 1
[1]+ myprogram &
$ logout
ジョブが1つしかない場合は、ジョブ番号を指定する必要はありません。 disown -h
とbg
を使用してください。
Ctrl-Zを押します。システムは実行中のプログラムを中断し、ジョブ番号と「停止」メッセージを表示して、bashプロンプトに戻ります。
disown -h %1
コマンドを入力します(ここでは、1
を使用しましたが、Stopped
メッセージに表示されたジョブ番号を使用します)。 SIGHUP
シグナル(ログアウトしても停止しません)。
次に、同じジョブ番号を使用してbg
コマンドを入力します。これにより、バックグラウンドでプログラムの実行が再開され、それを確認するメッセージが表示されます。
これでログアウトでき、実行を継続します。
Nohup
を使用して、バックグラウンドで実行してみてください:
Nohup sleep 3600 &
プログラム screen を試してみます。
バックグラウンドで開始します。
./long_running_process options &
ログアウトする前にジョブを否認します。
disown
Nohup が必要です。 http://nixcraft.com/linux-software/313-ssh-Nohup-connection.html を参照してください
screen
を使用して、デタッチおよび再アタッチできます