Это происходит часто, когда мы пытаемся получить доступ к приложению или контенту, но он запрашивает повторный вход или всплывающее окно, в котором указано, что ваш сеанс отключен.
Обычно сеанс заканчивается, когда содержимое остается бездействующим и транзакция не выполняется.
Много раз задается переменная «session_time», которая сохраняет активное соединение на время.
Но что происходит, когда время сеанса заканчивается, сигнал «SIGNUP» отправляется процессам, выполняющимся в фоновом режиме, а также для процессов, являющихся дочерними элементами основного процесса, которые принудительно завершаются независимо от завершения или частичного завершения задачи.
Итак, как мы можем сохранить процесс, даже после выхода из системы SSH?
В этой статье я объясню, как поддерживать работу даже после того, как SSH отключился от терминала Linux (Ubuntu 18.04 и CentOS 7).
1) Screen команда
Утилита screen предоставляет возможность запускать команду в системе Linux, отсоединять ее, а затем снова подключать.
Screen особенно удобен, если у вас есть трудоемкий процесс, который вы хотите продолжать работать даже после выхода из системы, и все же у вас есть возможность повторно подключиться к нему позже и с другого места.
Использование одной сеанса Screen
СОВЕТ: здесь мы используем команду «top», вы можете запускать команду в сеансе.
Немедленно нажмите «ctrl + a» и «d» на DETACH из сеанса экрана; Он будет работать в фоновом режиме.
Чтобы войти в сеанс отдельного screen:
# screen -r
используйте «exit» для завершения сеанса
# exit [screen is terminating]
Вы находитесь в своей родительской оболочке bash;
Проверьте «screen -r», если есть сеанс
# screen -r
Экран не будет возобновлен.
Добавить несколько screen
Добавьте сеансы screen и просто переключитесь с одного на другой.
Мы видели, как использовать сеанс с одним экраном выше.
Попробуем несколько.
Добавить первый экран:
# screen
(запустить «top» с screen сеанса и «ctrl + a» + «d»)
# top [detached from 15603.pts-1.centos7]
Запустите любую команду с этого нового сеанса в соответствии с вашим желанием.
Попробуем «df» проверить смонтированные диски (запустите «df -hT» из сеанса экрана и «ctrl + a» + «d»)
# df -hT [detached from 15652.pts-1.centos7]
БОНУС: Названия экранов слишком длинны?
Назовем сессию; имя заменит tty.host.
Это действие назовет сессию по вашему желанию; давайте назовем сессию «ping».
# screen -S # screen -S ping
# ping -c5 www.itsecforu.ru [detached from 15929.ping]
$ screen -r There are several suitable screens on: 15929.ping (Detached) 15652.pts-1.centos7 (Detached) 15603.pts-1.centos7 (Detached)
2) disown команда
# top > sys_summary & # jobs -l
3) Команда nohup
Давайте запустим yum, используя nohup, чтобы установить пакет
# nohup yum install -y httpd *> ApacheInstall 2> & 1 &
Теперь давайте посмотрим, что задания работают в фоновом режиме
# jobs -l </span> [1]+ 3646 Running nohup yum install -y httpd* > ApacheInstall 2>&1 & <span id="result_box" lang="ru">
4) Команда setid
setsid – создает сеанс и устанавливает идентификатор группы процессов
setid () создает новый сеанс, если вызывающий процесс не является лидером группы процессов.
PID вызывающего процесса настроен на обработку идентификатора сеанса и соответствующего идентификатора группы вызывающего процесса.
# setsid iostat # ps -ef | grep iostat
Для завершения команды используйте CLT + C
5) Команда Tmux
Tmux является терминальным мультиплексором.
Переключение между несколькими программами на одном терминале упрощается, отсоединяйте их (они продолжают работать в фоновом режиме) и присоединяйте их к другому терминалу.
Присоединение и отключение tmux-сессии
# tmux attach # tmux detach
Выход / завершение tmux
# exit
Именование сеансов при его создании
# tmux new -s
Прикрепление с использованием имени
# tmux attach
Переключение между сеансами с использованием имен
# tmux switch -t
Сеансы полезны для разделения различных рабочих сред.