
Вот что я делаю:
1) создаем пользователя some_deployer
2) затем создаем папку для скрипта, например /company/script/<service name>
3) в этой папке я создаю start.sh
и stop.sh
скрипты и даю право собственности пользователю some_deployer
и разрешение с chmod 755
.
4) затем после создания скрипта в /etc/init.d/
папке, например <service name>-service
и даю право собственности пользователю some_deployer
и разрешение с chmod 755
тоже.
5) затем добавляем эту службу в список служб, все еще внутри /etc/init.d/
с
/sbin/chkconfig --add -service (suse) или update-rc.d <service name>
defaults (ubuntu)
Правильно ли это? Это лучший способ продолжить? Я спрашиваю, потому что внезапно одна из моих служб, которую я создаю, больше не работает, я пробую команду /etc/init.d/-service, и она говорит, что command is not found
, почему это?
решение1
Создавать пользователя не обязательно, но вы, безусловно, можете это сделать, если это в ваших интересах. Не уверен, о чем вы говорите под /company/script/, но нет причин не делать этого. Просто убедитесь, что ваш файл скрипта находится в /etc/init.d перед запуском update-rc.d. Я не уверен, почему вы хотите использовать /company/script/, но из вашей ошибки следует, что имя вашей службы не проходит.
Посмотрите спецификации LSB для скрипта init.d здесь:http://wiki.debian.org/LSBInitScripts Вы создаете один скрипт с возможностями stop/start/restart/force-reload/status, а затем регистрируете его в update-rc.d или в чем-то подобном, как вы предложили. Это позволит update-rc.d указывать на один файл, но выполнять все необходимые операции с его помощью.
решение2
Не верьте LSB слишком сильно, большинство дистрибутивов давно отказались от sysvinit
, Ubuntu, RHEL используют upstart
(в случае RHEL в основном в режиме совместимости с SysV), Fedora использует systemd
уже больше года, в Fedora 18 почти все службы являются собственными systemd. Одно из обещаний systemd — продолжать обрабатывать LSB-совместимые установки, но он предлагает много преимуществ при использовании собственной конфигурации. Взгляните на его обширнуюдокументация.