Как удалить / сделать резервную копию скрипта из /etc/init.d/?

24

Я работал с Linux некоторое время, но довольно просто.

Я понимаю, что сценарии в init.dвыполняются при запуске ОС, но как именно это работает?

Что если я хочу сохранить скрипт, но не хочу, чтобы он запускался автоматически?

Скажем, у меня есть /etc/init.d/varnishи хочу временно отключить его. Как сделать так, чтобы он не запускался, если ОС перезагружается? Я не хочу удалять сценарий. Что если я захочу добавить это снова?

iDev247
источник

Ответы:

34

Есть несколько способов. Если вы просто хотите сделать это временно, вы можете удалить бит выполнения из файла:

$ chmod -x /etc/init.d/varnish

Затем добавьте его снова, когда это необходимо:

$ chmod +x /etc/init.d/varnish

«Официальный» путь в Ubuntu (а также в Debian и других производных Debian), однако, заключается в использовании update-rc.dкоманды:

$ update-rc.d varnish disable

Это удалит все символические ссылки из папок /etc/rcX.d, которые по мере необходимости будут запускать и останавливать службу.

Для получения дополнительной информации см. Справочную страницу update-rc.d .

EEAA
источник
Спасибо за отличный ответ! chmodэто простое решение! Я начал читать manpages.ubuntu.com/manpages/precise/man8/update-rc.d.8.html и помогает мне понять init. Заставил меня задуматься ... Я должен прочитать больше руководства.
iDev247
Рад помочь. Я должен отметить, что решение chmod должно использоваться только очень временно. Я не проверял это, но я мог видеть, что система Upstart (которую использует Ubuntu для автоматического запуска / остановки процессов) запуталась из-за этого.
EEAA
9
$ sudo update-rc.d -f servicename remove
Рожерио Соареш
источник
1
Этот ответ не соответствует вопросу, который хочет сохранить сценарий. «Когда вызывается с опцией удаления, update-rc.dудаляет все ссылки в /etc/rcrunlevel.dкаталогах на скрипт /etc/init.d/name. Сценарий, должно быть, уже удален ». Manpages.ubuntu.com/manpages/xenial/en/man8/update-rc.d.8.html
Мелебиус,