Как сохранить процессы, запущенные после выхода SSH в Linux |

Как сохранить процессы, запущенные после выхода SSH в Linux

Мануал

Это происходит часто, когда мы пытаемся получить доступ к приложению или контенту, но он запрашивает повторный вход или всплывающее окно, в котором указано, что ваш сеанс отключен.

Обычно сеанс заканчивается, когда содержимое остается бездействующим и транзакция не выполняется.

Много раз задается переменная «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 
Затем отсоедините сеанс.
Вы увидите имя сеанса сразу после pid; вместо tty.host
 # 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) 
Введите «screen [-d] -r [pid.] Tty.host», чтобы возобновить одно из них.

2) disown команда

Команда top похожа на вкладку процессов в диспетчере задач Windows.
Команда Top сообщает все о текущих запущенных, мертвых, зомбированных и т. д. процессах.
Также обеспечивает загрузку процессора и загрузку центрального процессора в соответствии с 1 минутой, 5 минутами, временной отметкой 15 минут.
 # 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 

Сеансы полезны для разделения различных рабочих сред.

6) Команда byobu

Многие дистрибутивы не поддерживают bayou, пожалуйста, следуйте нижеприведенным командам, чтобы установить byobu на CentOS, Ubuntu или Fedora.
 # sudo apt-get install byobu (Ubuntu)
# sudo yum install byobu (CentOS) 

После установки для вашей среды используйте эту простую команду,

 # byobu 

Теперь мы собираемся инициировать длительный процесс и выйти.

 # tar -xvzf community_images.tar.gz 

Нажмите «F6» для фонового выполнения процесса.

После входа в удаленную систему просто введите byobu для повторного присоединения сеанса.

 # byobu 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий