Я подключен к серверу через 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.1
127.255.255.254