Фоновые задания

Фоновые задания

Я подключен к серверу через ssh и хочу запустить процесс, который займет много времени. Я подключаюсь к серверу, используя ssh в терминале моего ноутбука, но я хочу иметь возможность выключить свой ноутбук, но при этом иметь возможность продолжать работу на сервере. Поскольку это два отдельных компьютера, похоже, что я должен иметь возможность сделать это, но я не уверен, возможно ли это через ssh.

решение1

Это довольно просто, добавьте &после вашей команды, например

bash script.sh &

Он продолжит выполнение, даже если вы выйдете из сеанса или закроете терминал.
Другой способ — использовать nohupкоманду и выполнить свою команду. Например

nohup bash script.sh

Найдите больше информации man nohupи следуйтеэтотвопрос, имеющий схожее направление.

решение2

Фоновые задания

Для работы в фоновом режиме

program &

Для работы в фоновом режиме и продолжения после отключения. Также перенаправляет stdoutна ~/nohup.out.

nohup program &

То же самое, но перенаправление на другой файл

nohup program > "another file" &

Обратите внимание, что для приведенных выше команд вы можете просмотреть фоновые задания с помощью jobsкоманды.

То же самое, но удалить из списка вакансий

nohup program > "another file" & disown

Постоянные сеансы

См. gnu screen, tmux, и vnc. Они позволяют вам держать сеанс открытым при отключении.

Гнуscreen

#create a screen session (do this once)
screen -d -m

#attach to the session
screen -x

Вы также можете иметь более одного (именованного сеанса)

#create a screen session (do this once)
screen -d -m -S a_name

#attach to the session
screen -x -S a_name

Обратите внимание, что ctrl_a используется для управления экраном, когда вы внутри. ctrl_a ctrl_a для передачи ctrl_a в оболочку.

ВНК

#create a vnc session (do this once)
vncserver -from 127.1.0.1 -geometry 1920x1000 :10

#attach to the session (from a remote machine)
ssvnc Vnc+ssh://«user»@«machine-name»:10

Измените геометрию, чтобы исправить ваш дисплей, возможно, измените номер дисплея.

Примечания:

Любой пользователь локальной машины может подключиться к сеансу VNC.

Вы можете добавить -SecurityTypes Noneотключение безопасности VNC, если у вас достаточно защиты через ssh.

127.1.0.1находится в диапазоне обратной связи. Подключаться могут только процессы на локальной машине. Вы можете подключиться удаленно через ssh(ssvnc). Вы можете использовать nftablesдля ограничения того, какие пользователи могут подключаться к . 127.1.0.1В диапазоне обратной связи (около 16 миллионов) есть много адресов , поэтому вы можете выделить по одному каждому пользователю и все еще иметь запас.127.0.0.1127.255.255.254

Связанный контент