Мне нужно запустить скрипт, выполнение которого занимает много времени, или я просто хочу, чтобы он работал вечно. Я не могу просто подключиться к моей машине по SSH, потому что при отключении он перестает работать.
Есть ли способ запустить скрипт, который не зависит от оболочки, которая его запустила?
Я использую Ubuntu 9.04.
Я всегда просто использую nohup. Если я забочусь о выводе, я перенаправляю его в файл журнала, в противном случае я отправляю его в / dev / null.
Пример:
Это помещает его в фоновый режим с выводом в / dev / null, и он не защищен от сигнала HUP, если вы выйдете из системы. Вы также можете «отказаться» от задания с помощью определенных оболочек (например, bash), чтобы оно не было связано с вашим сеансом.
источник
Чтобы установить экран:
apt-get install screen
Затем запустите, используя просто:
screen
И
man screen
чтобы получить ключ привязки.источник
Пока вы вошли на сервер, вы можете запустить скрипт в отдельном режиме с помощью следующей команды:
Позже, когда вы снова войдете в систему, вы можете проверить script.out для любого вывода и script.err для любых сообщений об ошибках. Если вы хотите вывод и сообщения об ошибках в одном файле, то выполните:
источник