Jak wyłączyć usługę upstart w Ubuntu 10.10?

27

W 10.10 używa się upstart zamiast sysvinit.

Możliwe jest usunięcie irytujących usług upstart, których nie chcesz, usuwając odpowiedni plik w /etc/init/blah.conf

Jednak wydaje się to ciężkie podejście. Jak poprawnie skonfigurować upstart, aby móc selektywnie włączać i wyłączać te usługi za pomocą wiersza poleceń?

Jako praktyczny przykład, odpowiedzi tutaj wymienione, aby wyłączyć gdm za pomocą rcconf, już nie działają: Jak zapobiec uruchamianiu GDM podczas uruchamiania na Ubuntu?

Doug
źródło
Uwaga Najwyraźniej niektóre wersje ubuntu mają pozycję „usług” w menu pulpitu graficznego, która pozwala to skonfigurować. Tego nie ma na moim. Szczególnie szukam rozwiązania z linii poleceń.
Doug
Najbardziej aktualna odpowiedź znajduje się na askubuntu . Przeczytaj też komentarze!
Marcello Nuccio,
2
Jest to teraz udokumentowane w akapicie Wyłączanie automatycznego uruchamiania zadania .
Marcello Nuccio,
@Marcello Hm ... czy warto było to powiedzieć? „Najbardziej aktualna odpowiedź” to wciąż ta sama odpowiedź. usuń plik lub usuń kilka pierwszych wierszy ręcznie.
Doug
najnowszym rozwiązaniem jest echo manual >> /etc/init/<service>.override, o czym wspomniano tylko w komentarzach (oraz w oficjalnej dokumentacji). Nie znalazłem go łatwo, dlatego wspomniałem o tym tutaj.
Marcello Nuccio,

Odpowiedzi:

19

Jeśli zajrzysz do /etc/init.d, zauważysz, że wszelkie usługi skonfigurowane przez upstart są tylko symbolicznymi linkami do / lib / init / upstart, więc usunięcie ich z /etc/init.d po prostu usuwa link - nie skrypt .

Jeśli potrzebujesz interfejsu do tego, możesz zainstalować chkconfigpakiet ( apt-get install chkconfig), który daje przydatne narzędzie wiersza poleceń:

# chkconfig --list
acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

Możesz włączyć / wyłączyć usługi dla określonych poziomów uruchamiania (lub po prostu je włączyć lub wyłączyć) za pomocą:

# chkconfig -s <service> <state/runlevels>

na przykład:

# chkconfig -s gdm off

aby całkowicie to wyłączyć,

# chkconfig -s gdm on

aby włączyć to z domyślnymsm lub

# chkconfig -s gdm 34

aby włączyć go tylko dla poziomów uruchamiania 3 i 4.

Zazwyczaj znajdziesz to polecenie w systemach opartych na RHEL (CentOS, Fedora itp.).

AKTUALIZACJA

Jest to specyficzne dla Ubuntu i gdm / kdm / cokolwiek.

Podczas uruchamiania gdm wywołuje plik konfiguracji upstart /etc/init/gdm.conf

Ten plik następnie odwołuje się do / etc / X11 / default-display-manager, aby sprawdzić, czy jest to domyślny menedżer wyświetlania dla systemu - jeśli tak, to wtedy się uruchamia.

Menedżer / etc / X11 / default-display-manager zawiera po prostu:

/usr/sbin/gdm

Możesz zastąpić to innym menedżerem wyświetlania lub całkowicie usunąć plik i nie uruchomi się on gdm.

Linia z pliku /etc/init/gdm.conf:

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

Mówi „Jeśli plik / etc / X11 / default-display-manager nie istnieje lub jeśli nie zawiera, /usr/sbin/gdmto wyjdź”

Majenko
źródło
To nie działało. Podobnie jak rcconf, chkconfig nie wymienia gdm jako usługi do uruchomienia na dowolnym poziomie uruchamiania. Jednak po ponownym uruchomieniu ładuje się. chkconfig -s gdm off nie uniemożliwił uruchomienia.
Doug
2
Jest tu również link sugerujący, że chkconfig nie jest odpowiednim narzędziem do użycia: ubuntuforums.org/showthread.php?t=1559266
Doug
Nigdy nie lubiłem uruchamiania Ubuntu - i ogólnie Linuksa. Zawsze wydawało się takie niechlujne i niechlujne. Daj mi rcng FreeBSD każdego dnia. W każdym razie - specyficzne dla menedżera wyświetlania Ubuntu, masz to, co pokazuje moja edycja ...
Majenko,
+1 za poprawne po edycji ze szczegółami do rozpoczęcia.
Doug
5

Zawsze uważałem, że narzędzie sysv-rc-conf jest bardzo pomocne, ma bardzo ładny i łatwy w użyciu interfejs.

zainstaluj tak:

sudo apt-get update
sudo apt-get install sysv-rc-conf

użyj tego w ten sposób:

sudo sysv-rc-conf
n0mad
źródło
1
Nie sądzę, żeby to
Rajat Gupta
3

Wystarczy spojrzeć, man 5 inita znajdziesz bardziej odpowiednie rozwiązanie. Krótki przykład: powiedzmy, że mamy usługę o nazwie „foobar”, więc będzie plik o nazwie /etc/init/foobar.confz konfiguracją upstart. Teraz nie chcesz usuwać tego pliku ani go modyfikować - ale nie chcesz, aby ta usługa była uruchomiona? Więc umieścić nadpisania pliku obok niego: /etc/init/foobar.override, zawierającą (opcjonalnie nagłówek z opisem) zamiast tego start on/ stop onLinie umieścić linię jednym słowem: manual. W ten sposób powiesz upstartowi, aby po prostu używał foobar.conf, ale przesłonisz definicję uruchamiania, aby uruchomić tę usługę tylko wtedy, gdy zostanie ręcznie wymuszone ( service foobar startw naszym przykładzie).

Izzy
źródło
2

Moją rekomendacją byłoby po prostu skomentowanie wszystkich wierszy „start on” i „stop on”. To działało dla mnie dobrze, kiedy uruchomiłem „initctl show-config”, aby sprawdzić, czy automatyczne uruchomienie mojego programu, którego chciałem, zostało wyłączone.

użytkownik35060
źródło
1

Upstart to menedżer inicjujący zdarzenia , a poziomy uruchamiania nie są głównym mechanizmem decydującym o uruchomieniu usługi. Zamiast tego usługi są uruchamiane, gdy wszystkie ich zależności są spełnione, co pozwala na większą równoległość podczas uruchamiania, przyspieszając proces uruchamiania.

Korzystając z Ubuntu 11.04, byłem w stanie wyłączyć GDM, edytując plik /etc/init/gdm.conf i usuwając wszystkie wpisy „start on”. Oto moja wstępna edycja:

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

Oto moja post-edycja:

start on
stop on runlevel [016]
Jason Martens
źródło
1
Poprawny; nie jest to jednak w zasadzie lepsze niż przeniesienie / usunięcie pliku etc / init / gdm.conf; Jestem (nadal) zdumiony, że ręczna edycja pliku konfiguracyjnego wydaje się jedynym sposobem na to.
Doug
1

Oto rozwiązanie:

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@Matt Jenkins

Nigdy nie lubiłem uruchamiania Ubuntu - i ogólnie Linuksa. To zawsze wydawało się takie niechlujne> Daj mi rcng FreeBSD każdego dnia. W każdym razie - specyficzne dla menedżera wyświetlania Ubuntu> masz to, co pokazuje moja edycja ...

Arch Linux ma ładny system inicjujący. Jednak systemd wysadza jakikolwiek inny system inicjujący z planety.

Pawło
źródło