2013-12-24 3 views
14

Фон: У меня есть длинный сценарий, который делает изменения схемы базы данных, которые имеют выход, который я хочу проверить после миграции. Я хотел бы написать это в файл.nohup vs screen - что лучше для продолжительного процесса?

Я читал переполнение стека о nohup и экране. Я пробовал и то и другое, и беспокоюсь обо всех.

В: How to run process as background and never die?

Они сказали, что они использовали nohup и шпаклевка убила процесс. Как это возможно? Мне не удалось выполнить репликацию с помощью терминала Mac OS X.

С screen Я испуган набрав выход вместо Ctrl + A, d

Кроме того, если я просто выйти из терминала приложение, используя экран, кажется, сохранить состояние.

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

Что вы посоветдёте в моей ситуации? У меня нет запуска сценария еще месяц или около того (когда у меня есть релиз). Должен ли я стать более комфортным с экраном и просто придерживаться этого?

+1

nohup - *** чрезвычайно *** отличный. Экран - это терминальный мультиплексор, или, точнее, диспетчер оконных окон. Nohup - это программа, которая позволяет запускать программу на удаленном сервере, не беспокоясь о том, что ваш сеанс 'ssh' зависает или нет. –

+1

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

+2

Для того, чтобы узнать ваши параметры, 'tmux' - еще один терминал mtiplexer, например' screen'. Я лично использую 'nohup' для постоянных команд за сеансом' ssh' и 'tmux' для сохранения среды. –

ответ

14

Оба имеют собственный + и -:

поЬир:

  1. поЬир хорошо использовать для запуска проки в фоновом режиме, когда прок не требует ввода пользователя, как HTTPd сервер или любой другой сервер, например, это.
  2. nohup создает журнал регистрации в процессе выполнения proc. имя файла журнала по умолчанию nohup.out
  3. Он избегает проса, убитого из-за ошибки ctrl + C, ctrl + D. Просто безопасный охранник.
  4. Обычно он устанавливается по умолчанию при базовой настройке. Не нужно устанавливать отдельно, как экран.
  5. Это функциональность очень специфична для работы задания в фоновом режиме и выгрузки. Низкая интенсивность памяти.

экран:

  1. Got установить отдельно. Вы можете зайти в центр обработки данных или войти в систему
    в любой коробке и ожидать, что экран присутствует.
  2. Хорошо управлять несколькими терминалами по отдельным темам и давать им имя.
  3. Его больше управляющий терминалом, а не команда для запуска proc для бесконечного времени, например nohup.
  4. Это более подходит, если proc требует ввода пользователя. Как установить
    скрипты, да/нет подсказки.
  5. С тонами функций появляется память. Но согласились, некоторые действительно отличные функции.

В заключение, обе эти две разные вещи сделаны с различными задачами, поэтому сравнение затруднено.

Cheers!