У меня есть NAS (под управлением Linux) и Macbook. Что делать, если я запускаю приложение OSX Terminal, подключаюсь к моему NAS через telnet и выполняю там какой-то скрипт:

python myscript.py > log.txt

Будет ли он продолжать работать, когда я закрою окно терминала? Как запустить скрипт, чтобы продолжить его выполнение после закрытия терминала? Как увидеть ход выполнения скрипта в этом случае (если не перенаправить его вывод в какой-либо файл)?

2 ответа2

2

Это не будет продолжать работать.

Вам нужно будет использовать что-то вроде screen, чтобы запустить его в виртуальном терминале, который вы можете подключить, или запустить его как задание cron, которое может выполняться в фоновом режиме.

1
  • "Будет ли он продолжать работать, когда я закрою окно терминала?": НЕТ, но это происходит потому, что вы запустили свой myscript.py именно таким образом;

  • «Как запустить скрипт, чтобы продолжить его выполнение после закрытия терминала»: вы можете поставить команду перед префиксом NOHUP, чтобы явно указать вашей программе игнорировать сигнал HUP, который она получит (если управляющий терминал будет закрыт). Кроме того, если ваша программа находится в состоянии непрерывного сна, то она будет ... спать (отказываясь от любой попытки уничтожения), независимо от всего;

  • "Как увидеть прогресс выполнения скрипта в таком случае (если не перенаправить его вывод в какой-либо файл)?": выполнение само по себе может быть проверено с помощью обычных" ps "," top "и т. д .; ход выполнения может отслеживаться главным образом исключительно с помощью сообщений трассировки вашего приложения (например, при записи сообщений трассировки / журнала в SYSLOG).

Сказав все вышесказанное, я прошу вас проверить этот вопрос ServerFault, касающийся удаленного SSH-соединения: я уверен, что при удаленном соединении через telnet все происходит точно так же, как проблемы с псевдо / управляющим терминалом (что являются основным фактором, определяющим срок службы дочерних процессов оболочки), одинаковы как для удаленных подключений SSH, так и для TELNET.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .