Cómo evitar que un demonio se inicie en el arranque en Debian

16

Hay algunos demonios que desactivo al iniciar el arranque. Como ejemplo, uso lo siguiente:

 sudo update-rc.d -f postgresql remove

Ni siquiera estoy seguro de si ese comando es correcto y no recuerdo de dónde lo obtuve.

De todos modos, cada vez que actualizo postgresql, la configuración se pierde (es decir, el demonio se inicia al reiniciar).

tshepang
fuente
1
En Debian con SysVinit, me gusta file-rc. En lugar de administrar enlaces simbólicos, administro un archivo de texto con mis configuraciones de nivel de ejecución.
Gilles 'SO- deja de ser malvado'

Respuestas:

22

update-rc.dfue utilizado inicialmente por los scripts de actualización de paquetes. removese llama en la desinstalación del paquete y elimina todos los enlaces, defaultsse llama en la instalación del paquete enableo disablepuede usarse según debconf y es útil para los administradores de sistemas. De hecho, las limpiezas removeno son útiles para deshabilitar un servicio. Desde la página del manual:

Un error común de administración del sistema es eliminar los enlaces con la idea de que esto "deshabilitará" el servicio, es decir, que evitará que se inicie el servicio. Sin embargo, si se han eliminado todos los enlaces, la próxima vez que se actualice el paquete, la secuencia de comandos postinst del paquete volverá a ejecutar update-rc.d y esto reinstalará los enlaces en sus ubicaciones predeterminadas de fábrica. La forma correcta de deshabilitar los servicios es configurar el servicio como detenido en todos los niveles de ejecución en los que se inicia de manera predeterminada. En el sistema de inicio System V esto significa renombrar los enlaces simbólicos del servicio de S a K.

sudo update-rc.d postgresql disablehará lo que quiera, porque mantiene los enlaces simbólicos rc.d pero con el prefijo K (asesinado, detenido). Revertirlo con un enable. Algunos servicios admiten la desactivación de su /etc/defaults/$servicearchivo, pero lamentablemente hay excepciones. Otras formas de deshabilitar un servicio son chmod -x el /etc/init.d/$servicearchivo o insertar uno exit 0en la parte superior.

Tobu
fuente
6

Para aclarar la mejor solución, similar a la respuesta que dio Tobu:

  1. No utilizar update-rc.dcon la removeopción.
  2. En cambio, use update-rc.dcon la disableopción.

Ejemplo: update-rc.d postgresql disable


ADEMÁS, también puede encontrar (y deshabilitar) otros servicios más específicos con systemctl.

Ejemplo: systemctl disable pppd-dns.service

Arahkun
fuente
+1 por el consejo de no usar la opción ELIMINAR
PYK
3

Tobu tiene toda la razón, pero está completo hay una herramienta para darle una visión inteligente: sysv-rc-conf. Para copia y patse:

apt-get install sysv-rc-conf

En ejecución sysv-rc-conf, verá qué script se ejecuta en qué nivel de ejecución. Puede habilitar / deshabilitar servicios a través de spacey salir con q.

binfalse
fuente
2
También me gusta rcconf, está en los repositorios estándar. Recuerde, sin embargo, ninguno de estos funcionará con upstart, que es el predeterminado en Ubuntu. Aunque muchas cosas todavía usan el legado init.
JM Becker