Jedną rzeczą, która zawsze myliła mnie w Ubuntu, był sposób uruchamiania usług systemowych. Wiem, że Ubuntu używa Upstart i obsługuje SysV, ale który z nich służy do uruchamiania usług? Ma to znaczenie, gdy chcesz uruchomić usługę „ręcznie”.
Na przykład w moim systemie mam pliki następujących usług w /etc/init.d/<service>
(SysV) i /etc/init/<service>.conf
(Upstart):
acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin
Więc jeśli chcę wyłączyć wykonywanie MySQL podczas uruchamiania, muszę użyć metody Upstart lub SysV, aby ją wyłączyć? Ponadto, jak mogę stwierdzić, który z nich jest naprawdę używany do uruchomienia usługi ogólnej?
Edytować
Naprawdę nie ma wątpliwości, jak wyłączyć / włączyć usługi za pomocą SysV / Upstart. To, co naprawdę mnie dezorientuje, to fakt, że niektóre usługi wydają się być jednocześnie zdefiniowane (i włączone) w SysV i Upstart. Czy istnieje jakikolwiek priorytet między nimi (np. Jeśli mysql
jest włączony w obu uruchom go za pomocą SysV)? Czy może tak się dzieje, że jedno narzędzie używa drugiego w tle?
Odpowiedzi:
Jeśli chodzi o usługi zdefiniowane zarówno w SysV, jak i upstart, zazwyczaj po ponownym uruchomieniu przez SysV zobaczysz coś takiego:
Mam na myśli to, że Upstart jest preferowany dla tych usług, a implementacja SysV jest tylko opakowaniem.
Myślę też, że masz znaczenie katalogów wstecz. / etc / init to konfiguracja wstępna, /etc/init.d to kompatybilność z SysV, ale to tylko dowiązania symboliczne do uruchomienia dla tego typu usług.
źródło
Zależy to w dużej mierze od aplikacji i jej opiekuna opakowania.
Skrypty Upstart są bardzo preferowane, ponieważ obsługują zdarzenia (co na ogół jest świetną rzeczą), ale wiele aplikacji nie ma wystarczającej liczby dostępnych skryptów Upstart lub opiekun aplikacji zdecydował się pozostać przy ustawieniach domyślnych (aplikacji lub Debiana) .
Tak czy inaczej, jesteś w sytuacji, w której musisz się dostosować.
.conf
, lubmanual
do pliku. Umożliwi to ręczne załadowanie usługi.W przypadku starszych usług:
Jeśli masz
/etc/init.d/
skrypt na coś i na/etc/init/
skrypcie i chcesz sprawdzić, czy wersja init.d jest wciąż żywe, można skontaktować się z:Jeśli widzisz mnóstwo dowiązań symbolicznych, jest on zainstalowany w starej inicjalizacji SysV.
źródło
acpid
), mogę założyć, że została uruchomiona przez SysV? A jeśli chcę to wyłączyć, musiałbym to zrobić za pomocąupdate-rc.d
sztuczki polegającej na zmianie nazwy?