У меня есть скрипт Python (который занимает много времени, чтобы завершить выполнение), который мне нужно запустить несколько раз, меняя параметры. И это выполняется на удаленной машине. Для примера и в целях тестирования возьмите следующий скрипт test.py
:
import time
print("\nStart time: {}".format(time.ctime()))
time.sleep(10)
print("End time: {}".format(time.ctime()))
Для этого я обычно использую nohup
. Это прекрасно работает при одном выполнении с помощью следующей команды:
nohup test.py &
Выходы правильно сохранены в файле nohup.out
. Чтобы выполнить последовательность, я провел некоторое исследование и нашел [этот вопрос] [1], и я придумал следующую команду:
nohup $(python test.py; python test.py) &
Который работает нормально. Я запустил команду, быстро вышел из системы и снова вошел и увидел htop
первый запуск выполнения, затем завершение и затем запуск второго. Но проблема в том, что вывод не был сохранен в файл nohup.out
. Если я жду в терминале, чтобы оба выполнения завершились, появляется следующая ошибка:
nohup: не удалось запустить команду «Пуск»: такого файла или каталога нет
Что я здесь не так делаю?
PS:.
Мне нужно регистрировать выходные данные, потому что мне нужно видеть текущий ход выполнения скрипта и знать, какая ошибка произошла, если она не завершится должным образом. Так что если вместо nohup
будет использоваться какая-то другая команда, которая может регистрировать python print
, то это тоже приветствуется.