¿Cómo evito que los servicios de Linux se inicien automáticamente?

¿Cómo evito que los servicios de Linux se inicien automáticamente?

Recientemente migré de Windows a Linux (xubuntu)

Soy desarrollador y he instalado todo lo que necesito, LAMP. En Windows solía desactivar todos los servicios innecesarios; no necesito que el servicio Apache o MySQL esté ejecutándose todo el tiempo. Siempre que necesitaba MySQL solía usar:

net start mysql

¿Cómo hago lo mismo en Linux?

  1. ¿Desactivar demonios no necesarios para que no se inicien automáticamente?
  2. ¿Iniciarlos sólo cuando los necesito?

Respuesta1

En la mayoría de las distribuciones de Linux, puede iniciar/detener servicios manualmente (como root o usando sudo) ejecutando los siguientes comandos:

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop

Los servicios que se inician automáticamente se controlan mediante enlaces de archivos en /etc/rc[runlevel].d/ . Encuentre su nivel de ejecución actual usando el comando "nivel de ejecución" como root

# runlevel
N 2

Lo que aquí indica el nivel de ejecución 2. Ahora sólo tiene que eliminar aquellos archivos en /etc/rc2.d/ que no desea que se inicien.

Por lo general, está bien eliminar Apache y Mysql en un escritorio, pero tenga cuidado de eliminar otros servicios.

Respuesta2

Para las versiones de Ubuntu que usan systemd (15.04 y posteriores), use:

systemctl disable service

Esto hará el trabajo. Deshabilitará el servicio y no se reiniciará después de reiniciar. Para habilitar temporalmente simplementecomenzarel servicio. Nopermitir.

Para encontrar el nombre del servicio utilice

service --status-all

Otros comandos son:

systemctl start service- Úselo para iniciar un servicio. No persiste después de reiniciar

systemctl stop service- Úselo para detener un servicio. No persiste después de reiniciar

systemctl restart service- Úselo para reiniciar un servicio.

systemctl status service- Muestra el estado de un servicio. Indica si un servicio se está ejecutando actualmente.

systemctl enable service- Activa el servicio en el próximo reinicio o en el próximo evento de inicio. Persiste después del reinicio.

systemctl disable service- Desactiva el servicio en el próximo reinicio o en el siguiente evento de detención. Persiste después del reinicio.

Respuesta3

Ubuntu 10.04 se encuentra en medio de una transición entre dos sistemas de gestión de servicios: SysVinit (el sistema tradicional, utilizado por la mayoría de las distribuciones de Linux) y Upstart (un sistema más nuevo impulsado por Ubuntu y que está disponible en cada vez más distribuciones).

Los scripts de gestión de servicios SysVinit están en formato /etc/init.d. Puede iniciar el servicio /etc/init.d/SERVICENAME starty detenerlo con /etc/init.d/SERVICENAME stop. Que el servicio se inicie automáticamente al arrancar depende de la presencia de enlaces simbólicos en /etc/rc?.ddonde ?hay un dígito desde 2hasta 5(elnivel de ejecución). La forma más sencilla de evitar que un servicio se inicie automáticamente al arrancar es utilizar update-rc.d SERVICENAME disable.

Los archivos de configuración de administración de servicios Upstart están en formato /etc/init. Puede iniciar el servicio start SERVICENAMEy detenerlo con stop SERVICENAME. El archivo de configuración /etc/init/SERVICENAME.confcontiene una línea que indica cuándo iniciar el servicio: start on …. Una forma sencilla de desactivar estos servicios es cambiar esa línea a start on never and (…). Si no desea editar el archivo, también puede desactivar completamente el servicio sin confundir al sistema de empaquetado, cambiándole el nombre para que no termine en .conf.

dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf

A partir de Ubuntu 10.04, Apache viene con un script SysVinit y Mysql viene con un script Upstart.

información relacionada