Я могу запустить сценарий Perl с Cron, но могу ли я сделать это открыть окно?

У меня есть сценарий Perl, который проходит всю ночь через окно терминала (Win10 Putty.exe) на моем сервере Ubuntu. Как и во многих домашних сетях, я иногда теряю интернет-соединение, которое убивает мою связь и сценарий.

Запуск другого сценария Perl через Cron (который проверяет, работает ли мой сценарий), я могу перезапустить сценарий Perl.

Однако он работает без окна.

Есть ли метод, который, когда я замазкую в Ubuntu, я могу открыть окно терминала, которое показывает вывод из моего сценария Perl, который сейчас работает?

Спасибо.

0
задан 12 January 2021 в 19:18

2 ответа

Вы можете перенаправить вывод из скрипта CRON к файлу >> /path/filename.log

Запустите скрипт с экраном: экран -sdm perl / путь / путь / to / script.pl

1
ответ дан 18 March 2021 в 23:45

Запустите скрипт в экране , т. Е. Прежде чем запустить скрипт, введите экран (если вы получите команду не найдено », вам сначала нужно установить экран пакет). Он просто отображает системную подсказку, как будто ничего не изменилось, но с тех пор у вас есть виртуальный терминал, который выживает потерю вашего соединения. Скрипт будет продолжать работать в этом терминале, даже если вы отключаете.

Когда вы теряете соединение, после подключения к вашему серверу введите экран -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 команда будет выходить из системы.

1
ответ дан 18 March 2021 в 23:45

Другие вопросы по тегам:

Похожие вопросы: