Я пытаюсь добавить к автозапуску во время загрузки службу Linux через
chkconfig -add <servicename>
и я получаю сообщение о том,
service <servicename> does not support chkconfig
Я использую Red Hat Enterprise 4. Сценарий, который я пытаюсь добавить к автозапуску во время загрузки, следующий:
#!/bin/sh
soffice_start() { if [ -x /opt/openoffice.org2.4/program/soffice ]; then
echo "Starting Open Office as a Service"
#echo " soffice -headless -accept=socket,port=8100;urp;StarOffice.ServiceManager
-nofirststartwizard"
/opt/openoffice.org2.4/program/soffice
-headless -accept="socket,host=0.0.0.0,port=8100;urp;StarOffice.ServiceManager"
-nofirststartwizard & else
echo "Error: Could not find the soffice program. Cannot Start SOffice." fi }
soffice_stop() { if [ -x /usr/bin/killall ]; then
echo "Stopping Openoffice"
/usr/bin/killall soffice 2> /dev/null else
echo "Eroor: Could not find killall. Cannot Stop soffice." fi }
case "$1" in 'start') soffice_start ;; 'stop') soffice_stop sleep 2 ;; 'restart') soffice_stop sleep 5 soffice_start ;; *) if [ -x /usr/bin/basename ]; then
echo "usage: '/usr/bin/basename $0' start| stop| restart" else
echo "usage: $0 start|stop|restart" fi esac
Ответы:
Скрипт должен иметь 2 строки:
например:
После добавления вышеуказанных заголовков вы можете запустить
chkconfig --add <service>
.источник
Хотя katriel уже ответил на это с минимальным минимумом, необходимым для создания сценария инициализации, я думаю, вам также будет полезно посмотреть
/etc/init.d/skeleton
и использовать его в качестве шаблона, на котором будет основан ваш сценарий инициализации. Вы получите гораздо более последовательный и читабельный скрипт.источник
/etc/init.d/skeleton
его нет в системах RHEL, только в Debian и связанных с ним (Ubuntu, я думаю).Похоже, что конкретная проблема Geo уже решена, но я столкнулся с похожим сообщением, пытаясь настроить приложение Rails
sidekiq
в качестве управляемого сервиса. Я объясню свое решение здесь, если оно поможет другим новичкам, таким как я.Я работаю над установкой CentOS, и chkconfig уже настроен с несколькими другими службами, такими как httpd, mysql и redis. Обратите внимание , что большинство услуг должны быть включены только на уровне выполнения
3
через5
.Мне нужно было добавить новый сценарий для
sidekiq
службы, поэтому я взял сценарий по адресу https://gist.github.com/CD1212/5326706 , изменил его, чтобы он соответствовал параметрам моего приложения, и сохранил его/etc/rc.d/init.d/sidekiq
(принадлежащий пользователю root, как и все другие скрипты есть).Однако, когда я попытался зарегистрировать этот новый сервис, я получил ошибку chkconfig:
После некоторого дополнительного чтения я обнаружил, что числа приоритетов, определенные в верхней части каждого сценария chkconfig, должны быть уникальными. Более четкое сообщение об ошибке было бы неплохо! Другой сценарий имел уровень приоритета отключения 75, поэтому я изменил свой на 76 и попробовал снова. Вот глава моего сценария инициализации:
На этот раз
sudo chkconfig --add sidekiq
не подал жалоб. Затем, когда я запустилсяsudo chkconfig --list sidekiq
, сервис sidekiq был показан какon
для соответствующих уровней запуска.источник
Номера приоритетов не должны быть уникальными. Они только представляют заказ услуг.
У Chkconfig не было проблем с добавлением службы "it". В противном случае вы будете ограничены 100 услугами.
Также в моем примере, это будет работать до оракула, потому что сценарии запускаются в алфавитном порядке.
источник