Я использую Ubuntu 12.04.3 LTS и установил несколько служб, таких как Samba, DHCP-сервер, ...
При запуске «halt now», «telinit 6» или подобных команд я получаю следующее предупреждение:
Since the script you are attempting to invoke has been converted
to an Upstart job, you may also use the...
Я вижу, что затронутые службы пытаются остановиться/запуститься дважды. Один раз через задание Upstart и еще раз через символические ссылки S/K в папке /etc/rcN.d, которые указывают на скрипт init.d. Вероятно, я могу просто удалить символическую ссылку в папке /etc/rcN.d.
Пример потока:
- Запустите «halt now» из оболочки
- Upstart останавливает Samba (так как существует файл конфигурации Upstart для Samba)
- SysV снова пытается остановить Samba (потому что также существует символическая ссылка /etc/rc0.d/K20smbd)
Я не понимаю/не хочу шаг 3, так как он кажется ненужным и выводит неприятное предупреждение.
Почему есть оба, скрипт Upstart и симлинки на скрипт init.d, для нескольких демонов? Правильный ли это способ, что мне нужно вручную очистить дубликаты симлинков в каждой папке /etc/rcN.d?
решение1
В Ubuntu есть ссылки совместимости init
, которые вызывают их аналоги upstart при каждом запуске.
Если вы, например, позвоните, то sudo /etc/init.d/apache start
будете перенаправлены на upstart-job, который предоставит вам приятное информационное сообщение, которое вам следует использовать sudo services apache start
, а затем сам выполнит команду.
ls -l /etc/init.d/network-manager
lrwxrwxrwx 1 root root 21 Sep 18 14:02 /etc/init.d/network-manager -> /lib/init/upstart-job
cat /lib/init/upstart-job
#!/bin/sh -e
# upstart-job
#
# Symlink target for initscripts that have been converted to Upstart.
{ lots of ASCII awesomeness }
решение2
Я понял, что это неправильная конфигурация моих скриптов Puppet.
Атрибут типа «service» «enable» создал сценарий инициализации SysV вместо распознавания сценария Upstart.