Назад | Перейти на главную страницу

Linux /etc/init.d - символическая ссылка, жесткая ссылка или фактический файл?

У меня есть 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 )