1. ホーム
  2. linux

[解決済み] sshからログアウトした後もプログラムを実行し続けるにはどうしたらいいですか?重複

2022-04-20 01:37:19

質問

<ブロッククオート

重複の可能性があります。

SSHクライアントを閉じた後にバックグラウンドプロセスを停止させないようにする

終了するのに時間がかかるプログラムがあります。 それはssh上でrootとして実行されています。

ログアウトした後も実行し続けたいのですが、可能でしょうか?

解決方法は?

フォアグラウンドでプログラムを実行している場合を想定しています。 ctrl-Zを押す とすると

[1]+  Stopped                 myprogram
$ disown -h %1
$ bg 1
[1]+ myprogram &
$ logout

ジョブが1つしかない場合は、ジョブ番号を指定する必要はありません。単に disown -hbg .

上記の手順について説明します。

ctrl-Zを押します。システムは実行中のプログラムを中断し、ジョブ番号と"Stopped"メッセージを表示し、bashプロンプトに戻ります。

を入力します。 disown -h %1 コマンドを使用します(ここでは 1 に表示されたジョブ番号を使用します。 Stopped メッセージ) を無視するようにジョブをマークします。 SIGHUP シグナルを送信します(ログアウトしても停止しません)。

次に bg このコマンドを実行すると、バックグラウンドでのプログラムの実行が再開され、そのことを確認するメッセージが表示されます。

これでログアウトすれば、実行が継続されます。