7

Возможный дубликат:
Оставить скрипт bash запущенным на удаленном терминале, пока не залогинен?

У меня есть скрипт bash, который запускает Gaussian, калькулятор химической структуры, который проводит пару дней, играя с молекулой. Он работает на компьютере Linux, в который я загружаю входные файлы и говорю сценарий, затем я (я должен) запустить его, подождать некоторое время, надеюсь, что программа не сбоит, и снова войдите в систему, чтобы получить результат.

В некоторой степени новичок * nx, но я не могу понять, как запустить сценарий и отключить его, продолжая в том же духе.

./jobscript

кажется, чтобы заблокировать, пока это не сделано, и если я отключаю его, он прекращает

./jobscript &

не блокируется, я вижу, что он работает top , поэтому я подумал, что все в порядке, но при выходе из системы это, очевидно, убило программу.

Как настроить устройство для запуска и продолжения работы, даже если я выйду из системы?

5 ответов5

8

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

8

Ты можешь использовать:

nohup /path/to/script >output 2>&1 &
5

Вы можете начать сеанс экрана , начать работу и отключиться от сеанса экрана.

Позже вы можете снова подключиться к сеансу экрана, чтобы увидеть, завершена ли ваша работа.

См. Также https://serverfault.com/questions/2016/on-a-linux-server-how-do-you-use-multiple-terminals-over-a-single-ssh-connection/2027#2027

2

nohup

nohup - запустить команду, защищенную от зависаний, с выводом не-tty

- man nohup

1

С bash:

my_program &
disown -h %1

Измените номер для вашего фактического номера работы (см. Также встроенные jobs )

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