2017-02-19 38 views
0

Я поставил этот вопрос на stackoverflow, потому что я уже нашел много вопросов по этой теме.Зачем использовать nohup, когда приложение можно запустить как системный?

Краткое введение

Проще говоря, nohup может быть использован для запуска приложений в фоновом режиме и сохраняет их работы после завершения сеанса пользователя или сеанс терминала или SSH закрыт, например,

Здесь много примеров quesitons на stackoverflow, например this или that.

Мой вопрос прост.

Почему выбирают nohup, когда есть варианты, как upstart, systemd, ... которые управляют приложение как сервис в гораздо более удобным способом (уровень выполнения, ...)?

Чтение многих вопросов по подобным темам, единственный вариант, похоже, nohup. Почти никогда не ответ что-то вроде: «... использовать выскочка сценарий, так что все обрабатывается для вас ...»


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

Я пропустил что-то важное?

+0

Stack Overflow - это сайт для вопросов программирования и развития. Этот вопрос кажется вне темы, потому что речь идет не о программировании или разработке. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, лучше сказать [Суперпользователь] (http://superuser.com/) или [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/). Также см. [Где я пишу вопросы о Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

+0

Я упомянул о своих намерениях, но вы правы, конечно .. Я рассмотрю это и переместите его, если это возможно. Благодарю. – rocksteady

ответ

4

nohup быстро, легко, не требует корневого доступа и не вносит постоянные изменения в систему. Вот почему многие люди используют его (или пытаются использовать) вместо настройки служб.

Запуск вещей в фоновом режиме без какого-либо наблюдения - это, как правило, плохая идея, хотя есть много законных вариантов использования, которые не подходят для традиционной модели обслуживания. Например:

  1. Фоновый процесс может потребоваться только иногда, после определенных действий пользователя.
  2. Может потребоваться более одного экземпляра. Например: один на пользователя или один за сеанс.
  3. Возможно, процесс не должен работать постоянно. Он просто уходит, выполняя свою работу.

Некоторые примеры реального мира (которые используют что-то вроде nohup и было бы трудно реализовать в качестве системных служб):

  1. git иногда будет git gc в фоновом режиме, чтобы оптимизировать хранилище без блокировки работу пользователя
  2. adb начнет свою работу в фоновом режиме и продолжит работу до тех пор, пока пользователь не попросит его прекратить.
  3. Некоторые компиляторы имеют возможность продолжать работать в фоновом режиме, чтобы уменьшить запуск временные последующие вызовы