Як тримати роботу програми після відключення SSH? [дублікат]


15

Можливі копії:
Продовжуйте роботу програми після закриття консолі після запуску програми.
Як можна використовувати ssh для запуску команди на віддаленій машині Unix та виходу до завершення команди?

Привіт!

Я хочу запустити програму зі свого ноутбука через SSH-з'єднання з віддаленим сервером. Проблема в тому, що я їду додому зі своїм ноутбуком :)

Як тримати роботу програми?

Відповіді:


22

"екран" - це, швидше за все, те, що ви хочете. Це дозволяє відключити і підключитися знову за бажанням. Після SSH на сервер запустіть екран перед запуском програми. Ctrl-a, Ctrl-d відключить вас (програма продовжується незалежно). Після повернення "screen -r" з'єднає вас так, ніби ви ніколи не бували.

Подумайте про це як VNC або RDP для текстових терміналів. Шукайте "за допомогою екрана" для багатьох навчальних посібників.

Відредаговано, щоб додати: У ці дні я б рекомендував замість цього tmux , особливо якщо він використовується разом із сценарієм tmx . Можливість розділяти панелі (вертикально і горизонтально) та змінювати їх розмір - це величезна користь на екрані.


5
Між іншим, екран буде продовжувати працювати, якщо час вашого з'єднання вичерпується чи щось подібне, поки ви до нього ще приєднані. Деякі корисні команди: ctrl + a, ctrl + d = від'єднання від екрана, екран -r = повторне приєднання до екрана, екран -x = прикріплення до екрана у спільному режимі (може використовуватися для навчання тощо), можуть користуватися двома користувачами той же екран), ctrl + a, esc = введіть режим прокрутки (натисніть q, щоб знову вийти). ПРИМІТКА. Якщо ви запустите екран, набравши "екранна програма", він негайно запустить програму на екрані, але якщо вона вийде, ви втратите буфер. Введення просто "екрана" дасть вам постійний термінал.

Кріс, також tnx для корисної відповіді.

18

nohup це команда, яка запустить іншу команду та зробить її несприйнятливою до сигналу "зависання".

Ви запускаєте його так просто, як:

nohup command

але вам також знадобиться переспрямувати stdin, stdout та stderr. Додаткову інформацію див. На сторінці чоловіка.

Ви також, ймовірно, захочете поставити його на другий план.

Вам також потрібно знати killкоманду, щоб врешті-решт її вбити.


Так, tnx багато! так легко))

Це той, який я використовую. Дуже дуже просто. Використовувати teeдля переадресації stdin, stdout та stderr.
Ritwik Bose
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.