現在バックアップを実行していますが、tmux
またはscreen
などの取り外し可能なバックアップに転送する必要があります。コマンドが現在実行されているときにこれを行う方法はありますか?
を押すと、コマンドを背景に送信できます Ctrl+Zfg
コマンドを発行して元に戻します。しかし、ターミナルを終了したときにそのセッションに戻ることができるかどうかはわかりません。
ほとんどの場合、これは機能します:
前提条件:reptyr
およびtmux
/screen
がインストールされている。プラットフォームに応じて、apt-get
またはyum
でそれらを見つけることができます。
使用する Ctrl+Z プロセスを一時停止します。
bg
を使用してバックグラウンドでプロセスを再開します
jobs -l
を使用して、バックグラウンドプロセスのプロセスIDを検索します
次のようなものが表示されます。
[1]+ 11475 Stopped (signal) yourprocessname
disown yourprocessname
を使用して、現在の親(シェル)からジョブを否認します
tmux
(推奨)またはscreen
を起動します。
Reptyrを使用してプロセスをtmux
/screen
セッションに再アタッチします。
reptyr 11475
これで、マルチプレクサをデタッチできます(デフォルト Ctrl+B、 Dtmux
の場合、または Ctrl+A、 Dscreen
)の場合、プロセスがtmux
/screen
で続行している間にSSHを切断します。
後で再度SSHで接続するときに、マルチプレクサに接続できます(例:tmux attach
)。
reptyr
は良いですが、許可エラーが発生しました
$ reptyr 30622
[-] Unable to open the tty in the child.
Unable to attach to pid 30622: Permission denied
次に見つかりました-L Like '-l', but also redirect the child's stdio to the slave.
それは魅力のように働きました
$ reptyr -L 30622
Opened a new pty: /dev/pts/4