Quelle est la différence entre "Service" et "/etc/init.d/"?

110

Je gère les installations de serveurs à la fois sur et hors de Ubuntu depuis un certain temps - je suis devenu tout à fait ajusté à /etc/init.d/ pour le redémarrage des services. Maintenant, je reçois ce message:

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

Cela semble avoir été provoqué par le dernier LTS d'Ubuntu - pourquoi? Qu'y a-t-il de si mal à propos de /etc/init.d/ et quelle / y a-t-il une différence entre service et /etc/init.d/ ?

    
posée Marco Ceppi 12.08.2010 - 21:12
la source

2 réponses

97

/etc/init.d scripts sont l'ancienne façon de faire les choses. Ils proviennent de la norme System V. Cependant, ces scripts ne sont lancés que dans une séquence particulière, donc aucune dépendance réelle ne peut être établie.

Par conséquent, upstart a été développé avec l'intention de remplacer tous les scripts /etc/init.d par des scripts de démarrage (en /etc/init ).

service permet une transition en douceur entre les scripts /etc/init.d et les scripts installés. À l'avenir, lorsque de plus en plus de scripts seront transférés vers le démarrage, le service fonctionnera toujours car il trouve les deux possibilités.

réponse donnée txwikinger 12.08.2010 - 21:33
la source
26

Consultez également la page de manuel relative à la commande de service: man service

service exécute un script dans un environnement prévisible (le répertoire de travail est / et seules 2 variables d'environnement sont définies: LANG et TERM). Il ajoute également la possibilité de faire --full-restart . Donc pour résumer:

  1. service peut exécuter des scripts depuis / etc / init ou /etc/init.d (upstart ou System V)
  2. service exécute des scripts dans un environnement prévisible.

L'aspect "environnement prévisible" peut vous causer des problèmes si votre script dépend d'une variable d'environnement pour une raison quelconque. Il y a probablement un moyen de contourner cela, mais je ne sais pas ce que c'est, et cela dépasse le cadre de cette question:)

    
réponse donnée Joe Marty 08.06.2011 - 17:52
la source

Lire d'autres questions sur les étiquettes