Почему запускается служба, если она не упомянута в /etc/init.d?

Почему запускается служба, если она не упомянута в /etc/init.d?

После чистой установки Fedora 17 и distcc-server, я выполнил service distccd start, который завершился успешно.

man serviceуказывает, что он просто запустит скрипт distccdв /etc/init.d/distccd, но этот файл не существует. chkconfigтакже, похоже, не знает о distccd, что подтверждается отсутствием связанных файлов в /etc/rc[0-6].d. Естьделаетсуществует файл /etc/sysconfig/distccd, содержащий параметры запуска демона distcc, но я не могу найти serviceна /etc/sysconfigнего ссылку.

Откуда он serviceзнает, что делать, когда я печатаю service distccd start?

Кроме того, я узнал, что Fedora 17 может перенаправлять serviceна systemd/ systemctl. Даже если это так, я все равно не нахожу никаких distccdсвязанных файлов в /etc/systemd/{system,user}.

решение1

/etc/systemdдля определяемых пользователем служб. Местоположение по умолчанию для определяемых системой служб — /lib/systemd/system/. Вы можете перезаписать определяемые системой службы в /etc/systemd.

Для получения дополнительной информации о systemd посетитеСтраница Fedora Wiki для systemdили посмотрите насистемная документация

решение2

Насколько мне известно, serviceполагается на наличие сценария инициализации в /etc/init.d.

distccd, возможно, не был упакован со скриптом инициализации. Попробуйте следующее, чтобы запустить службу как демон:

distccd --daemon

Если это сработает, вы можете создать свой собственный скрипт, /etc/init.d/distccdкоторый будет запускать указанную выше команду, и тогда вы сможете обращаться с ним как с системной службой с помощью service distccd start. Использовать /etc/init.d/skeletonкак шаблон.

Связанный контент