Qual è la differenza tra "Servizio" e "/etc/init.d/"?

110

Gestisco da un po 'di tempo le installazioni dei server sia dentro che fuori dal gusto di Ubuntu - Sono diventato abbastanza abituato a /etc/init.d/ per il riavvio di servizi. Ora ricevo questo messaggio:

root@tatooine:~# /etc/init.d/mysql status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql status

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status mysql
mysql start/running, process 14048

Questo sembra essere stato generato nell'ultimo LTS di Ubuntu - perché? Cosa c'è di male in /etc/init.d/ e che / c'è una differenza tra service e /etc/init.d/ ?

    
posta Marco Ceppi 12.08.2010 - 21:12
fonte

2 risposte

97

Gli script /etc/init.d sono il vecchio modo di fare le cose. Vengono dallo standard System V. Tuttavia, quegli script vengono attivati ​​solo in una particolare sequenza, quindi non è possibile stabilire reali dipendenze.

Pertanto, upstart è stato sviluppato con l'intento di sostituire tutti gli script /etc/init.d con gli script upstart (in /etc/init ).

service consente la transizione senza intoppi dagli script /etc/init.d agli script upstart. In futuro, quando un numero sempre maggiore di script verrà trasferito a upstart, il servizio continuerà a funzionare perché trova entrambe le possibilità.

risposta data txwikinger 12.08.2010 - 21:33
fonte
26

Controlla anche la pagina man per il comando service: man service

service esegue uno script in un ambiente prevedibile (la directory di lavoro è / e sono impostate solo 2 variabili di ambiente: LANG e TERM). Aggiunge anche la possibilità di fare --full-restart . Quindi riassumendo:

  1. service può eseguire script da / etc / init o /etc/init.d (upstart o System V)
  2. service esegue script in un ambiente prevedibile.

L'aspetto "ambiente prevedibile" può causare problemi se lo script dipende da una variabile di ambiente per qualche motivo. Probabilmente c'è un modo per aggirarlo, ma non so cosa sia, e questo va oltre lo scopo di questa domanda:)

    
risposta data Joe Marty 08.06.2011 - 17:52
fonte

Leggi altre domande sui tag