Come vengono avviati i servizi di sistema in 12.10?


12

Una cosa che mi ha sempre confuso in Ubuntu è stata l'avvio dei servizi di sistema. So che Ubuntu utilizza Upstart e supporta SysV, ma quale viene utilizzato per avviare i servizi? Ciò è importante quando si desidera un avvio "manuale" per un servizio.

Ad esempio, sul mio sistema ho file per i seguenti servizi in /etc/init.d/<service>(SysV) e /etc/init/<service>.conf(Upstart):

acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin

Quindi, se voglio disabilitare l'esecuzione di MySQL all'avvio, devo usare il modo Upstart o il modo SysV per disabilitarlo? Inoltre, come posso sapere quale di questi è realmente utilizzato per avviare un servizio generico?

modificare

Il vero dubbio qui non è come disabilitare / abilitare i servizi usando SysV / Upstart. Ciò che mi confonde davvero è che alcuni servizi sembrano essere definiti (e abilitati) in SysV e Upstart allo stesso tempo. C'è qualche precedenza tra loro (come se mysqlfosse abilitato in entrambi, avviarlo usando SysV)? O può essere il caso che uno strumento utilizzi l'altro in background?


1
Dai un'occhiata alla risposta accettata qui: askubuntu.com/questions/133807/… ha alcuni link interessanti.
Rinzwind,

Risposte:


2

Per quanto riguarda i servizi definiti in SysV e upstart, generalmente se lo riavvii tramite SysV vedrai qualcosa del genere:

al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al: 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846

Ciò che intendo per dire è che Upstart è preferito per questi servizi e l'implementazione di SysV è solo un wrapper.

Inoltre, penso che tu abbia il significato delle directory al contrario. / etc / init è la configurazione upstart, /etc/init.d è la compatibilità SysV, ma sono solo collegamenti simbolici a upstart per questo tipo di servizi.


6

Dipende in gran parte dall'applicazione e dal suo manutentore del packaging.

Vi è una forte preferenza per gli script Upstart perché gestiscono gli eventi (che è generalmente una grande cosa) ma molte applicazioni non hanno abbastanza script Upstart disponibili o il manutentore dell'applicazione ha scelto di attenersi alle impostazioni predefinite (applicazione o Debian) .

Ad ogni modo, sei nella posizione in cui devi adattarti.

  • Per Upstart:
    • Rinomina il file in qualcosa che non finisce .confo
    • Aggiungi manualal file. Ciò ti consentirà di caricare manualmente il servizio.
  • Per i servizi meno recenti:

    update-rc.d -f <service> remove
    

Se si dispone di uno /etc/init.d/script per qualcosa e uno /etc/init/script e si desidera verificare se la versione init.d è ancora attiva, è possibile verificare con:

ls -l /etc/rc?.d/*<service>

Se vedi un carico di symlink, è installato nel vecchio init SysV.


Quindi, se ho un servizio abilitato in SysV e Upstart (ad esempio acpid), posso presumere che sia stato lanciato da SysV? O se voglio disabilitarlo, dovrei farlo usando update-rc.de il trucco di rinominare?
Salem,
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.