web-dev-qa-db-ja.com

tmux、パイプの破損を防ぐ方法は?

私はsshとtmuxを初めて使用します。 sshを介してリモートサーバーでrakeタスクを実行したいのですが、コンピューターをシャットダウンして、サーバーでタスクを実行し続けたいと思います。だから私はそれをしているように見えるtmuxを発見しました、しかし昨夜私はtmuxセッションを再接続した後に「書き込みエラー、壊れたパイプ」を受け取りました。私のインターネットホームインターネットは非常に不安定なので、新しいIPを取得する可能性がありますが、それは問題ですか?では、どうすればこれを防ぐことができますか?

6
ThommyH

私が理解しているように、サーバー上でプログラムを実行したままにしておき、プログラムはtmux内で実行する必要があります。これを機能させるには、サーバーでtmuxを実行する必要があります。

段階的に

client$ ssh server
server$ tmux
server$ program

[detach from tmux]

server$ exit
client$

再接続するには、次の操作を実行できます。

client$ ssh server
server$ tmux attach

一行で

client$ ssh -t server tmux new program

[detach]

-dスイッチをnewに追加すると、tmuxセッションは接続されませんが、バックグラウンドで実行されます。このようなもの:

client$ ssh -qt server tmux new -d "'program'"

コマンドに空白が含まれている場合は、コマンドを二重引用符で囲む必要があることに注意してください。

再接続:

ssh -t server tmux attach
7
Thor