tmux, як запобігти зламаній трубі?


6

Я новачок у ssh та tmux. Я хочу запустити завдання рейку на віддаленому сервері через ssh, але я хочу вимкнути комп'ютер і хочу, щоб завдання продовжувалося виконуватись на сервері. Тому я виявив, що tmux з, здається, це роблять, але минулої ночі я отримав "помилку запису, зламана труба" після того, як я повторно встановив сесію tmux. Мій домашній Інтернет в Інтернеті дуже нестабільний, тому я, можливо, отримав новий IP, це проблема? Отже, як я можу запобігти цьому?


Ви маєте на увазі, що повторне вкладення вдалося? або це не вдалося з "помилкою запису"? Ви запустили tmux на своєму локальному комп’ютері чи на сервері?
Тор

Я побіг tmux на своїй машині. Я зробив: tmux; ssh server.foo; грабнути щось; закрити термінал + вимкнути комп’ютер.

Відповіді:


6

Як я вас зрозумів, ви хочете залишити програму, запущену на сервері, і програма повинна працювати в межах 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.