У меня есть сценарий Perl, который проходит всю ночь через окно терминала (Win10 Putty.exe) на моем сервере Ubuntu. Как и во многих домашних сетях, я иногда теряю интернет-соединение, которое убивает мою связь и сценарий.
Запуск другого сценария Perl через Cron (который проверяет, работает ли мой сценарий), я могу перезапустить сценарий Perl.
Однако он работает без окна.
Есть ли метод, который, когда я замазкую в Ubuntu, я могу открыть окно терминала, которое показывает вывод из моего сценария Perl, который сейчас работает?
Спасибо.
Вы можете перенаправить вывод из скрипта CRON к файлу >> /path/filename.log
Запустите скрипт с экраном: экран -sdm perl / путь / путь / to / script.pl
Запустите скрипт в экране
, т. Е. Прежде чем запустить скрипт, введите экран
(если вы получите команду не найдено », вам сначала нужно установить экран
пакет). Он просто отображает системную подсказку, как будто ничего не изменилось, но с тех пор у вас есть виртуальный терминал, который выживает потерю вашего соединения. Скрипт будет продолжать работать в этом терминале, даже если вы отключаете.
Когда вы теряете соединение, после подключения к вашему серверу введите экран -LS
. Это перечисляет ваш экран
сеансов. Вывод может выглядеть так:
There is a screen on:
19923.pts-10.myserver (Detached)
1 Socket in /var/run/screen/S-myuser.
(«MyServer» и «Myuser» станет вашим фактическим именем хоста и имени пользователя соответственно). Если вы видите «отделенные», как указано выше, это означает, что сервер правильно заметил, что подключение было потеряно, и сеанс был должным образом отключен. В этом случае вы можете присоединиться к этой сессии с командой:
screen -r 19923
, где, конечно, номер 19923 является PID экрана
, который вы получили от экрана
команда.
Однако это может быть, что сервер не заметил отключение, а ваш экран
сеанс все еще «прикреплен» к сеансу, который больше не существует. В этом случае вам нужно сначала отключить ваш экран
сеанса , прежде чем повторно прикрепить к нему, вы можете сделать это, указывая дополнительно -D
параметр:
screen -d -r 19923
, который обычно используется и DE FACTO Стандартное решение для выполнения программ, которые должны быть защищены от случайного закрытия терминальной сессии и продолжать работать, даже если это произойдет.
Когда ваш скрипт заканчивается и возвращает в ОС, то сначала Extry
команда , набранная в приглашении ОС, будет термина экрана
и вернуть вас к регулярному сеансу терминала (вы увидите сообщение «Экран прекращается»). Второе EXIT
команда будет выходить из системы.