Come si disabilita un servizio upstart in Ubuntu 10.10?


27

In 10.10 viene utilizzato upstart invece di sysvinit.

È possibile rimuovere i fastidiosi servizi di avvio che non si desidera rimuovendo il file appropriato in /etc/init/blah.conf

Tuttavia, questo sembra un approccio pesante. Come si configura correttamente upstart per poter attivare e disattivare selettivamente questi servizi dalla riga di comando?

Come esempio pratico, le risposte elencate qui per disattivare gdm usando rcconf non funzionano più: Come posso impedire l'esecuzione di GDM all'avvio su Ubuntu?


Nb. Apparentemente alcune versioni di Ubuntu hanno una voce "servizi" nel menu del desktop grafico che consente di configurarlo. Questo non è presente sul mio. Sto specificatamente cercando una soluzione da riga di comando.
Doug,

La risposta più aggiornata è su askubuntu . Leggi anche i commenti!
Marcello Nuccio,


@Marcello Hm ... c'era motivo di dirlo? La "risposta più aggiornata" è sempre la stessa risposta. rimuovi il file o elimina manualmente le prime righe.
Doug,

la soluzione più recente è echo manual >> /etc/init/<service>.override, e questo è menzionato solo nei commenti (e nella documentazione ufficiale). Non l'ho trovato facilmente, ecco perché l'ho menzionato qui.
Marcello Nuccio,

Risposte:


19

Se guardi in /etc/init.d noterai che tutti i servizi configurati tramite upstart sono solo collegamenti simbolici a / lib / init / upstart, quindi rimuovendoli da /etc/init.d rimuove solo il link - non lo script .

Se vuoi un'interfaccia per questo puoi installare il chkconfigpacchetto ( apt-get install chkconfig) che fornisce un utile strumento da riga di comando:

# 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 ....

Puoi abilitare / disabilitare i servizi per specifici livelli di esecuzione (o semplicemente accenderli e spegnerli) con:

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

per esempio:

# chkconfig -s gdm off

per spegnerlo completamente,

# chkconfig -s gdm on

per accenderlo con il valore predefinito o

# chkconfig -s gdm 34

per accenderlo solo per i livelli di esecuzione 3 e 4.

Di solito questo comando si trova su sistemi basati su RHEL (CentOS, Fedora, ecc.).

AGGIORNARE

Questo è specifico per Ubuntu e gdm / kdm / qualunque cosa.

All'avvio di gdm chiama un file di configurazione upstart /etc/init/gdm.conf

Questo file fa quindi riferimento a / etc / X11 / default-display-manager per vedere se è il display manager predefinito per il sistema - se è allora si avvia.

Il / etc / X11 / default-display-manager contiene solo:

/usr/sbin/gdm

Puoi sostituirlo con un altro display manager o rimuovere del tutto il file e non avvierà gdm.

Una riga dal file /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; }

Sta dicendo "Se il file / etc / X11 / default-display-manager non esiste, o se non contiene, /usr/sbin/gdmesci"


Non ha funzionato. Proprio come rcconf, chkconfig non elenca gdm come servizio da avviare a qualsiasi livello di esecuzione. Eppure, riavviato, carica. chkconfig -s gdm off non ha impedito l'avvio.
Doug,

2
C'è un link qui che suggerisce anche che chkconfig non è lo strumento appropriato da usare: ubuntuforums.org/showthread.php?t=1559266
Doug

Non mi è mai piaciuta l'avvio di Ubuntu - e Linux in generale. Sembra sempre così disordinato e kludgy. Dammi l'RCng di FreeBSD ogni giorno. Comunque - specifico per il display manager di Ubuntu hai quello che mostra la mia modifica ...
Majenko

+1 per corretto dopo la modifica con i dettagli per l'avvio.
Doug,

5

Ho sempre trovato molto utile lo strumento sysv-rc-conf , ha un'interfaccia molto bella e facile da usare.

installalo così:

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

usalo così:

sudo sysv-rc-conf

1
Non credo che funzioni per i servizi upstart però ...
Rajat Gupta

3

Dai un'occhiata man 5 inite troverai una soluzione più appropriata. Breve esempio: supponiamo di avere un servizio chiamato "foobar", quindi ci sarebbe un file chiamato /etc/init/foobar.confcon la sua configurazione upstart. Ora non vuoi rimuovere quel file, né modificarlo, ma non vuoi che questo servizio sia eseguito? Quindi effettuare un override di file successivo ad esso: /etc/init/foobar.override, contenente (opzionalmente l'intestazione con la descrizione e) invece i start on/ stop onle linee si inserisce una linea con una sola parola: manual. In questo modo dici a upstart di usare sostanzialmente il foobar.conf, ma sovrascrivi la definizione di avvio per avviare quel servizio solo se applicato manualmente (tramite service foobar startnel nostro esempio).


2

La mia raccomandazione sarebbe di commentare semplicemente tutte le righe "start on" e "stop on". Questo ha funzionato bene per me quando ho eseguito "initctl show-config" per vedere se l'avvio automatico del mio programma che volevo fosse disabilitato.


1

Upstart è un init manager guidato da eventi e i runlevel non sono il meccanismo principale per decidere quando viene avviato un servizio. Al contrario, i servizi vengono avviati quando tutte le loro dipendenze sono soddisfatte, il che consente un maggiore parallelismo durante l'avvio, accelerando il processo di avvio.

Usando Ubuntu 11.04, sono stato in grado di disabilitare GDM modificando il file /etc/init/gdm.conf e rimuovendo tutte le voci "start on". Ecco la mia pre-modifica:

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]

Ecco il mio post-modifica:

start on
stop on runlevel [016]

1
Corretta; tuttavia, questo non è sostanzialmente meglio di spostare / rimuovere il file etc / init / gdm.conf; Sono (ancora) stupito che la modifica manuale del file di configurazione sembra essere l'unico modo per farlo.
Doug,

1

Ecco una soluzione:

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

@Matt Jenkins

Non mi è mai piaciuta l'avvio di Ubuntu - e Linux in generale. Sembra sempre così disordinato> e kludgy. Dammi l'RCng di FreeBSD ogni giorno. Comunque - specifico per il display manager di Ubuntu> hai quello che mostra la mia modifica ...

Arch Linux ha un bel sistema init. Tuttavia, systemd spazza via qualsiasi altro sistema init dal pianeta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.