У меня есть Debian и пакет RPM, который требует добавления сценария запуска / остановки в каталог /etc/init.d. Недавно удаленный разработчик сообщил мне, что «знающие» знают, что «лучшая практика» - это фактически установить запуск в каталог /etc/init.d, а не использовать символические ссылки, особенно когда пакет может быть установлен на другом разделе. Я всегда использовал символические ссылки. «Ls -la» показывает, что многие пакеты используют символические ссылки.
Есть ли гуру Unix / Linux, который может дать окончательный ответ о том, что лучше всего использовать в отношении сценариев запуска в каталоге /etc/init.d. Лучшая практика - символическая ссылка, жесткая ссылка, фактический файл или это действительно важно?
Было бы здорово, если бы вы могли процитировать источник. Я гуглил эту тему, но не могу найти ответа.
У меня есть проблемы с тем, что RHEL7 не следует символическим ссылкам на сценарии в /etc/init.d/. Службы не запускались при загрузке, и некоторые команды «service XXX start» не выполнялись.
Единственный способ исправить это - скопировать файл в каталог init.d вместо символической ссылки. Поэтому, хотя удобно использовать символическую ссылку, копирование файла напрямую, вероятно, лучше.
Единственный способ, которым я когда-либо видел initscritps, - это иметь обычный файл в /etc/init.d
и символическую ссылку на этот файл в каталоге для каждого уровня выполнения.
Символьная ссылка от /etc/init.d
в другое место может работать. Но это было бы ненормальной практикой. И если ссылка указывала за пределы корневого раздела, вы получите установку, которая легко сломается.
Я бы рекомендовал придерживаться файла в /etc/init.d
как и другие сервисы.
Стандарты LSB ( https://refspecs.linuxbase.org/LSB_2.1.0/LSB-generic/LSB-generic/initsrcinstrm.html ) заявляют, что сценарии /etc/init.d могут быть символическими ссылками:
An init.d file is installed in /etc/init.d (which may be a symlink
to another location) . . .
Но, честно говоря, мне кажется, что я когда-либо видел только приложения сторонних поставщиков, использующие символические ссылки.
Изменить: идентичный набор слов в спецификациях 3.0 ( https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-generic/LSB-generic/initsrcinstrm.html )