2014-09-12 7 views
0

Я запускал сценарий Unix, который в основном помещает детали из БД и создает xml для многих идентификаторов (приблизительно 1000 элементов). После генерации всего XML он отправит его в очередь. Прямо сейчас у меня есть сомнения. Мой скрипт работает в скрипте. Я просто контролирую его, используя PUTTY. продолжит ли мой сценарий выполнение, если я выключу свою систему?unix-скрипт, запущенный из putty

+2

Запустите его в фоновом режиме с помощью 'nohup', чтобы он не был убит при выходе из системы. Еще лучше, используйте 'screen', чтобы вы могли отключиться от сеанса терминала и позже подключиться к нему. – Barmar

ответ

0

Как следует из комментария Бармара, вы должны сначала начать сеанс screen, напечатав screen в оболочке.

Затем вы должны начать свой сценарий.

Наконец, вы должны отключить сеанс экрана и выйти из системы, с Control-a, d.

При повторном входе в систему, если вы хотите увидеть прогресс, вы можете сделать screen -a для повторного подключения экрана.

0

Если вы выполнили свой скрипт на переднем плане (или разветвили его на задний план с помощью &), он завершится после закрытия сеанса.

Чтобы избежать этого, у вас есть несколько вариантов:

  • Использование nohup с &, чтобы заставить программу игнорировать SIGHUP сигнал.
  • Используйте планировщик, например cron, at, или вашу систему инициализации, чтобы запланировать процесс запуска в/на определенное время.
  • Используйте виртуальный терминальный мультиплексор, такой как GNU screen или tmux, чтобы запустить программу в «фоновом режиме» на возобновляемом терминале.

Использование планировщика, вероятно, является наиболее универсальным из трех, но мультиплексор может быть полезен, если вы хотите видеть вывод сценария в режиме реального времени.

Смежные вопросы