У меня иногда есть длительные процессы, которые я хочу начать перед хождением домой, таким образом, я создаю сессию SSH к серверу для запуска процесса, но затем я хочу закрыть свой ноутбук и пойти домой и позже после ужина, я хочу проверить процесс, который я запустил перед оставлением работы. Как я могу сделать это с SSH? Мое понимание - то, что при повреждении соединения SSH, Вы также повредите свою сессию входа в систему на сервере, поэтому уничтожая длительный процесс.
Использовать nohup
заставить Ваш процесс проигнорировать сигнал зависания:
$ nohup long-running-process &
$ exit
Вы хотите использовать Экран GNU. Это является супер потрясающим!
ssh me@myserver.com
screen #start a screen session
run-a-long-process
CTRL+a, d для отсоединений от экранной сессии
exit #disconnect from the server, while run-a-long-process continues
Когда Вы возвращаетесь к своему ноутбуку:
ssh me@myserver.com
screen -r #resume the screen session
Затем проверьте прогресс своего продолжительного процесса!
screen
очень всесторонний инструмент и может сделать намного больше, чем, что я описал. В то время как на экранной сессии, попробуйте ctrl+a? изучить несколько общих команд. Вероятно, наиболее распространенные:
screen -d -r
гарантировать, что, если другая оболочка присоединена к моей экранной сессии, это будет отсоединено, прежде чем я возобновлю его на своей существующей системе.screen -S name
и позвольте своему другому другу соединиться с ним с screen -x name
.
– Patrick
06.10.2010, 12:23
tmux
с tmuxinator
большая комбинация для необычных установок, в то время как я предпочитаю screen
как быстрое и простое решение.
– earthmeLon
19.06.2014, 18:31
То, что Вы хотите использовать, является экраном или еще лучше удобной для пользователя оберткой вокруг экрана, названного byobu.
Экран позволяет Вам выполнять несколько сессий виртуального терминала на той же ssh сессии. Учебное руководство и страницы справки доступны.
byobu является оберткой, которая позволяет легко открывать новые экраны с простой функциональной клавишей вместо сочетания клавиш от ctrl-a. Это также показывает строку состояния со всеми открытыми виртуальными терминалами, которые можно назвать.
Другой хорошей функцией является то, что весь Ваш экран может не лечь спать, в то время как Ваше соединение SSH разъединяется. Вы просто соединяетесь снова через ssh и называете byobu, и все похоже прежде.
Наконец некоторые снимки экрана byobu.
Если Вы не запланировали заранее и устанавливаете screen
, и т.д. просто сделайте следующее:
Если Ваш процесс работает в фоновом режиме: goto № 3, еще: Ctrl-Z
приостановить приоритетный процесс. Это сообщит о задании # приостановленного процесса, например:
[1]+ Stopped processName
Отправить processName
к фону с bg %1
(использующий безотносительно задания # следует %
). Это возобновится processName
в фоновом режиме.
Отрицать processName
с disown %1
или disown PID
. Используйте -h
отметьте, если Вы хотите поддержать владение, пока Вы не завершаете свою текущую оболочку.
&
когда я запустил его. Это, кажется, работает отлично!
– Matt
25.03.2012, 18:42
Могло бы стоить отметить это
ssh -t lala screen -rxU moo
присоединит к сессии мычания на хосте lala
ssh -t lala screen -S moo
создаст сессию мычания на хосте lala
и
ssh -t lala screen -S moo quux
создаст сессию мычания на хосте lala и запустит программу quux, выходя из сессии на завершении.
Я использую NX NoMachine, который свободен для меня, потому что это - только я. По существу это выполняет X сессий на сервере, с которым можно соединиться и разъединить из-за и. X сессий продолжают бежать, когда Вы не соединены. Связи могут быть установлены отовсюду. Можно выбрать между плавающими окнами или единственным окном, содержащим целый рабочий стол (например, полный рабочий стол Gnome). Клиент (который Вы работали бы на своем ноутбуке) может быть выполнен на Linux, MacOS, Солярисе или Microsoft Windows. В последнем случае, если Вы выбираете плавающие окна, они появляются индивидуально в Windows Taskbar.
Я использую свой ноутбук Windows XP (в котором я нуждаюсь для определенных определенных для Windows аппаратных средств, которые я имею) как фронтэнд для моих двух серверов Linux с помощью NX Nomachine. Я могу даже распечатать к принтеру, подключенному к моему ноутбуку Windows из Linux.
nohup
SIGHUP прерываний так, чтобы, когда оболочка, которая выполнила его, выходит и отправляет SIGHUP всем своим все еще рабочим детям,long-running-process
не умирает.disown
просто удаляет указанное задание из дочернего списка Bash, таким образом, это не попытается отправить SIGHUP вообще.nohup
программа, отдельная от оболочки, таким образом, она работает со всеми оболочками, тогда какdisown
встроенный Bash.nohup
принимает, что команда работает, тогда какdisown
только работы после задания запускаются, и у Вас есть фон оно так, можно возвратиться к оболочке. – Warren Young 15.08.2010, 17:00tail -f nohup.out
проверять, что продолжается, когда Вы вернулись. – Ricardo Stuven 03.11.2016, 17:15