Jak zatrzymać uruchamianie demona podczas uruchamiania w Debianie

16

Jest kilka demonów, których wyłączam podczas uruchamiania. Jako przykład wykorzystuję następujące informacje:

 sudo update-rc.d -f postgresql remove

Nie jestem nawet pewien, czy to polecenie jest poprawne i nie pamiętam, skąd je wziąłem.

W każdym razie, kiedy aktualizuję postgresql, ustawienie jest tracone (tzn. Demon uruchamia się przy ponownym uruchomieniu).

tshepang
źródło
1
W Debianie z SysVinit lubię file-rc. Zamiast zarządzać dowiązaniami symbolicznymi, zarządzam plikiem tekstowym w moich konfiguracjach poziomu pracy.
Gilles „SO- przestań być zły”

Odpowiedzi:

22

update-rc.dbył początkowo używany przez skrypty aktualizacji pakietu. removejest wywoływany podczas deinstalacji pakietu i usuwa wszystkie łącza, defaultsjest wywoływany podczas instalacji pakietu, enablelub disablemoże być używany w zależności od debconf i jest przydatny dla sysadmins. Oczyszczanie removenie jest w rzeczywistości przydatne do wyłączenia usługi. Ze strony podręcznika:

Częstym błędem administracyjnym systemu jest usuwanie łączy z myślą, że „wyłączy” to usługę, tzn. Że uniemożliwi to uruchomienie usługi. Jeśli jednak wszystkie łącza zostaną usunięte, to przy następnym uaktualnieniu pakietu skrypt postinst pakietu uruchomi ponownie update-rc.d, co spowoduje ponowne zainstalowanie łączy w domyślnych lokalizacjach fabrycznych. Prawidłowym sposobem wyłączenia usług jest skonfigurowanie usługi jako zatrzymanej na wszystkich poziomach uruchamiania, w których jest domyślnie uruchamiana. W systemie inicjującym System V oznacza to zmianę nazwy dowiązań symbolicznych usługi z S na K.

sudo update-rc.d postgresql disablezrobi co chcesz, ponieważ zachowuje dowiązania symboliczne rc.d, ale z prefiksem K (zabity, zatrzymany). Cofnij to za pomocą enable. Niektóre usługi obsługują wyłączanie ich /etc/defaults/$serviceplików, ale niestety są wyjątki. Inne sposoby wyłączenia usługi to chmod -x /etc/init.d/$serviceplik lub wstawienie go exit 0u góry.

Tobu
źródło
6

Aby wyjaśnić najlepsze rozwiązanie, podobne do odpowiedzi udzielonej przez Tobu:

  1. Nie używaj update-rc.dz tą removeopcją.
  2. Zamiast tego użyj update-rc.dz disableopcją.

Przykład: update-rc.d postgresql disable


PLUS, można również znaleźć (i wyłączyć) inne, bardziej szczegółowe usługi za pomocą systemctl.

Przykład: systemctl disable pppd-dns.service

Arahkun
źródło
+1 za
odradzanie
3

Tobu ma absolutną rację, ale dla kompletności istnieje narzędzie, aby dać Ci inteligentny przegląd: sysv-rc-conf. Do kopiowania i wklejania:

apt-get install sysv-rc-conf

Po uruchomieniu sysv-rc-confzobaczysz, który skrypt jest wykonywany w którym poziomie działania. Możesz włączyć / wyłączyć usługi za pośrednictwem spacei wyjść z q.

binfalse
źródło
2
Podoba mi się również rcconfw standardowych repozytoriach. Pamiętaj jednak, że żaden z nich nie będzie działał z upstartem, który jest domyślny w Ubuntu. Chociaż wiele rzeczy wciąż korzysta ze starszego init.
JM Becker