¿Cuál es la diferencia entre “Servicio” y “/etc/init.d/”?

110

He estado administrando las instalaciones del servidor tanto dentro como fuera del sabor de Ubuntu durante algún tiempo; me he adaptado bastante a /etc/init.d/ para reiniciar los servicios. Ahora recibo este mensaje:

[email protected]:~# /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

Esto parece haberse producido en el último LTS de Ubuntu, ¿por qué? ¿Qué tiene de malo /etc/init.d/ y qué / hay una diferencia entre service y /etc/init.d/ ?

    
pregunta Marco Ceppi 12.08.2010 - 21:12

2 respuestas

99

/etc/init.d scripts son la forma antigua de hacer las cosas. Vienen del sistema V estándar. Sin embargo, esos scripts se activan solo en una secuencia particular, por lo que no se pueden establecer dependencias reales.

Por lo tanto, upstart se ha desarrollado con la intención de sustituir todos los scripts /etc/init.d con scripts upstart (en /etc/init ).

service permite una transición suave desde /etc/init.d scripts a upstart scripts. En el futuro, cuando más y más scripts se transfieran a upstart, el servicio seguirá funcionando porque encuentra ambas posibilidades.

respondido por el txwikinger 12.08.2010 - 21:33
26

También puedes ver la página del manual del comando de servicio: man service

service ejecuta un script en un entorno predecible (el directorio de trabajo es / y solo se configuran 2 variables de entorno: LANG y TERM). También añade la posibilidad de hacer --full-restart . Para resumir:

  1. service puede ejecutar scripts desde / etc / init o /etc/init.d (upstart o System V)
  2. service ejecuta scripts en un entorno predecible.

El aspecto del "entorno predecible" puede causarle problemas si su secuencia de comandos depende de una variable de entorno por alguna razón. Probablemente hay una forma de evitar eso, pero no sé qué es, y eso está fuera del alcance de esta pregunta :)

    
respondido por el Joe Marty 08.06.2011 - 17:52

Lea otras preguntas en las etiquetas