Я пытаюсь настроить PhantomJS для работы в качестве службы. Я нашел файл скелета в /etc/init.d, и я работаю на Ubuntu 12.10. Пытаясь понять это, я нашел символические ссылки в каталогах /etc/rc*.d и обнаружил, что Apache работает на уровнях выполнения со 2 по 5.
Мой вопрос: я только что создал символическую ссылку S02phantomjs в папках с 2 по 5 и указал ее на сценарий, который я поместил в /etc/init.d? Или мне следует использовать какое-нибудь приложение для настройки этого?
Меня беспокоит, что я чего-то упускаю. И что порядок в числовой части имеет большое значение, и я не хочу с этим связываться.
Также я не уверен, что мне нужно сделать что-нибудь еще, чтобы не только убедиться, что это запускается при каждой загрузке. Но пусть он запустится сейчас.
Последний вопрос. Мой сценарий, основанный на скелете, когда я запускаю его в терминале, он просто сидит и ждет, как когда я обычно запускаю PhantomJS. Я бы хотел, чтобы он просто работал в фоновом режиме, как это делает Apache. Что мне нужно сделать иначе, чтобы добиться этого?
Спасибо всем!
Если сценарий инициализации уже существует и правильно написан, его должно быть достаточно, чтобы включить его, как и любой другой сценарий инициализации:
update-rc.d phantomjs defaults
или (12.04+)
update-rc.d phantomjs enable
(Обычно это делается по умолчанию, когда вы устанавливаете пакеты с apt-get
и его кузены ...)
Поскольку PhantomJS не будет поддерживать запуск демонов из коробки, вы должны сами позаботиться о своем сервисе. Здорово, что ты нашел /etc/init.d/skeleton
и использовал его для создания сценария инициализации. То, что вы описываете, показывает, что ваш процесс не уходит в фоновый режим, и это можно исправить с помощью некоторой оболочки. Это может быть start-stop-daemon
что характерно для дистрибутивов на основе Debian, или отдельный daemon
пакет, который может перенаправлять stdin / stdout и обрабатывать дополнительные ситуации.
Поскольку я почти уверен, что вы используете традиционный способ написания сценария инициализации, я подозреваю, что вы можете просто добавить --background
вашей команде start-stop-daemon.
Когда вы закончите исправлять свой скрипт, убедитесь, что он принадлежит root:root
с разрешениями 0755 (например, rwxr-xr-x
). После этого обновите символические ссылки sysvinit с update-rc.d
команда предоставлена Майклом Хэмптоном в его ответе.
В качестве примечания: есть некоторые другие инструменты, которые поддерживают отправку процесса в фоновый режим и могут быть полезны в других случаях. Например, руководитель, выскочка и systemd поддержите это. Пожалуйста, обратитесь к их документации, чтобы получить точный синтаксис. Если вы собираетесь использовать один из них, писать полный сценарий инициализации не нужно.
Конечно, сценарии инициализации - это самый старый и наиболее поддерживаемый способ запуска демонов.