¿Cómo deshabilita un servicio de inicio en ubuntu 10.10?

27

En 10.10 se está utilizando el sistema de arranque en lugar de sysvinit.

Es posible eliminar los molestos servicios de arranque que no desea eliminando el archivo apropiado en /etc/init/blah.conf

Sin embargo, esto parece un enfoque de mano dura. ¿Cómo configura correctamente el sistema de arranque para poder activar y desactivar selectivamente estos servicios a través de la línea de comandos?

Como ejemplo práctico, las respuestas enumeradas aquí para desactivar gdm usando rcconf ya no funcionan: ¿cómo evito que GDM se ejecute al arrancar en Ubuntu?

Doug
fuente
Nótese bien. Aparentemente, algunas versiones de ubuntu tienen un elemento de 'servicios' en el menú del escritorio gráfico que permite que esto se configure. Eso no está presente en el mío. Estoy buscando específicamente una solución de línea de comando.
Doug
La respuesta más actualizada está en askubuntu . ¡Lee los comentarios también!
Marcello Nuccio
2
Esto ahora está documentado en el párrafo Deshabilitar un trabajo para que no se inicie automáticamente .
Marcello Nuccio
@Marcello Hm ... ¿hubo algún punto para decir eso? La 'respuesta más actualizada' sigue siendo la misma respuesta. elimine el archivo o elimine las primeras líneas manualmente.
Doug
la solución más nueva es echo manual >> /etc/init/<service>.override, y esto se menciona solo en los comentarios (y en la documentación oficial). No lo encontré fácilmente, por eso lo mencioné aquí.
Marcello Nuccio

Respuestas:

19

Si busca en /etc/init.d, notará que los servicios que se configuran a través de upstart son solo enlaces simbólicos a / lib / init / upstart, por lo que eliminarlos de /etc/init.d simplemente elimina el enlace, no el script .

Si desea una interfaz para esto, puede instalar el chkconfigpaquete ( apt-get install chkconfig) que proporciona una herramienta útil de línea de comandos:

# chkconfig --list
acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

Puede habilitar / deshabilitar servicios para niveles de ejecución específicos (o simplemente activarlos y desactivarlos) con:

# chkconfig -s <service> <state/runlevels>

por ejemplo:

# chkconfig -s gdm off

para apagarlo por completo,

# chkconfig -s gdm on

para encenderlo con los valores predeterminados o

# chkconfig -s gdm 34

para encenderlo solo en los niveles de ejecución 3 y 4.

Por lo general, encontrará este comando en sistemas basados ​​en RHEL (CentOS, Fedora, etc.).

ACTUALIZAR

Esto es específico de Ubuntu y gdm / kdm / lo que sea.

Cuando se inicia gdm, llama a un archivo de configuración de inicio /etc/init/gdm.conf

Este archivo hace referencia a / etc / X11 / default-display-manager para ver si es el administrador de pantalla predeterminado para el sistema; si lo es, se inicia.

El / etc / X11 / default-display-manager solo contiene:

/usr/sbin/gdm

Puede reemplazar esto con otro administrador de pantalla o eliminar el archivo por completo y no se iniciará gdm.

Una línea del archivo /etc/init/gdm.conf:

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

Dice "Si el archivo / etc / X11 / default-display-manager no existe, o si no contiene /usr/sbin/gdm, salga"

Majenko
fuente
Eso no funcionó. Al igual que rcconf, chkconfig no enumera gdm como un servicio que se iniciará en ningún nivel de ejecución. Sin embargo, reiniciando, se carga. chkconfig -s gdm off no impidió que se iniciara.
Doug
2
Hay un enlace aquí que también sugiere que chkconfig no es la herramienta adecuada para usar: ubuntuforums.org/showthread.php?t=1559266
Doug
Nunca me ha gustado el inicio de Ubuntu, y el de Linux en general. Siempre ha parecido tan desordenado y torpe. Dame rcng de FreeBSD cualquier día. De todos modos - específica a gestor de pantalla de Ubuntu que tienes lo que mi edición muestra ...
Majenko
+1 para corregir después de editar con detalles para el arranque.
Doug
5

Siempre he encontrado la herramienta sysv-rc-conf muy útil, tiene una interfaz muy agradable y fácil de usar.

instálalo así:

sudo apt-get update
sudo apt-get install sysv-rc-conf

úsalo así:

sudo sysv-rc-conf
n0mad
fuente
1
Sin embargo, no creo que funcione para los servicios advenedizos ..
Rajat Gupta
3

Simplemente eche un vistazo man 5 inity encontrará una solución más adecuada. Breve ejemplo: supongamos que tenemos un servicio llamado "foobar", por lo que habría un archivo llamado /etc/init/foobar.confcon su configuración inicial. Ahora no desea eliminar ese archivo ni modificarlo, pero ¿tampoco desea que se ejecute este servicio? Por tanto, coloca una anulación de archivo junto a él: /etc/init/foobar.override, que contiene (opcionalmente la cabecera con la descripción y) en lugar de los start on/ stop onlas líneas se coloca una línea con una palabra: manual. De esta manera, le dice a upstart que básicamente use el foobar.conf, pero anule la definición de inicio para iniciar ese servicio solo cuando se aplica manualmente (a través service foobar startde nuestro ejemplo).

Izzy
fuente
2

Mi recomendación sería simplemente comentar todas las líneas "comenzar en" y "parar en". Eso funcionó bien para mí cuando ejecuté "initctl show-config" para ver si el inicio automático de mi programa que quería estaba desactivado.

user35060
fuente
1

Upstart es un administrador de inicio controlado por eventos , y los niveles de ejecución no son el mecanismo principal para decidir cuándo se inicia un servicio. En cambio, los servicios se inician cuando se satisfacen todas sus dependencias, lo que permite un mayor paralelismo durante el arranque, acelerando el proceso de arranque.

Usando Ubuntu 11.04, pude deshabilitar GDM editando el archivo /etc/init/gdm.conf y eliminando todas las entradas de "inicio". Aquí está mi pre-edición:

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

Aquí está mi post-edición:

start on
stop on runlevel [016]
Jason Martens
fuente
1
Correcto; sin embargo, esto básicamente no es mejor que simplemente mover / eliminar el archivo etc / init / gdm.conf; Estoy (todavía) asombrado de que editar manualmente el archivo de configuración parece ser la única forma de hacerlo.
Doug
1

Aquí hay una solución:

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@Matt Jenkins

Nunca me ha gustado el inicio de Ubuntu, y el de Linux en general. Siempre ha parecido tan desordenado> y torpe. Dame rcng de FreeBSD cualquier día. De todos modos, específico para el administrador de pantalla de Ubuntu> tienes lo que muestra mi edición ...

Arch Linux tiene un buen sistema de inicio. Sin embargo, systemd elimina cualquier otro sistema init del planeta.

Pawlo
fuente