Detener el programa que se ejecuta al inicio en Linux
29
¿Cómo detengo un programa que se ejecuta al inicio en Linux? Quiero eliminar algunas aplicaciones del inicio para permitir que sean administradas por, por supervisordejemplo, apache2
Esa es exactamente la razón por la que no lo etiqueté ... Estoy buscando todas las variaciones mientras trabajo con bastantes distribuciones diferentes.
Frozenskys
Respuestas:
29
Dependiendo de su distribución, use la herramienta chkconfig o update-rc.d para habilitar / deshabilitar los servicios del sistema.
En un sistema de estilo redhat / suse / mandrake:
sudo chkconfig apache2 off
En Debian:
sudo update-rc.d -f apache2 remove
Consulte sus páginas de manual para obtener más información.
¿Por qué necesita -f (supongo que es forzado) en distribuciones basadas en Debian?
Frozenskys
2
Hay dos conjuntos de archivos en juego aquí. Tiene el script de inicio real en /etc/init.d/ y tiene los enlaces a él en su directorio de nivel de ejecución /etc/rcrunlevel.d/. Estos chicos señalan el script en /etc/init.d/ Si no usa -f update-rd.d fallará A MENOS QUE el script en /etc/init.d/ ya esté eliminado. Si utiliza -f update-rc.d eliminará correctamente los archivos de enlace independientemente de si se elimina o no el script /etc/init.d/.
jacksonh
Ah, eso tiene mucho sentido, había olvidado que los scripts de nivel de ejecución eran solo enlaces a los scripts de inicio. Gracias por la explicación extra.
Frozenskys
6
Si se trata de un sistema Ubuntu moderno y algunas otras distribuciones, es posible que deba lidiar con una combinación de scripts de inicio tradicionales y scripts de arranque. La gestión de scripts de inicio está cubierta por otras respuestas. La siguiente es una forma de detener el inicio de un servicio inicial en el arranque:
El problema con este método es que no le permite iniciar el servicio usando:
# service start servicename
Una alternativa a esto es abrir el servicename.confarchivo en su editor favorito y comentar las líneas que comienzan con:
start on
Es decir, cambie esto a
#start on ...
donde el "..." es lo que fue después de "comenzar" anteriormente. De esta manera, cuando desee volver a habilitarlo, no tiene que recordar cuáles fueron los parámetros de "inicio".
Finalmente, si tiene una nueva versión de arranque, simplemente puede agregar la palabra "manual" al final del archivo de configuración. Puede hacer esto directamente desde el shell:
# echo "manual" >> /etc/init/servicename.conf
Esto provocará que upstart ignore cualquier frase de "inicio" anterior en el archivo.
¡Gracias! Había probado muchos métodos, pero este systmctlcomando funcionó bien.
amado.por.Jesús
1
Para enumerar todos los servicios de inicio
systemctl
Para detener la ejecución de un servicio al iniciar
sudo systemctl disable servicename
Por ejemplo, si necesitamos dejar de ejecutar el servidor ssh al inicio
sudo systemctl disable sshd.service
Podemos habilitar esto nuevamente usando
sudo systemctl enable sshd.service
Casi todas las distribuciones de Linux usan systemd para los servicios de arranque de arranque. Entonces, los comandos anteriores funcionan para la mayoría de las distribuciones.
¡Bienvenido a U&L, y gracias por tu contribución! Me gustaría señalar que esta pregunta tiene aproximadamente ocho años, por lo que la respuesta aceptada fue correcta para la época. Usar systemctl puede ser correcto ahora , pero es correcto para una pregunta diferente .
Jeff Schaller
@Prince gracias por las explicaciones detalladas. Me ayudó a entender cómo funciona el inicio de arranque en mi Xubuntu.
amado.por.Jesús
0
Slackware y Arch Linux tienen métodos similares para detener / iniciar procesos en el arranque, diferentes a los ejemplos de Ubuntu y de estilo Redhat dados anteriormente.
Tanto en Slackware como en Linux, los scripts sh existen en el directorio /etc/rc.d, generalmente un script por demonio o un script por subsistema.
Por ejemplo, Slackware inicia el servidor web Apache con un script /etc/rc.d/rc.httpd, llamado en el momento apropiado durante el inicio del sistema con un argumento de "inicio". Arch Linux tiene scripts con nombres diferentes, pero sucede lo mismo.
Para evitar que se inicie algún proceso durante el arranque del sistema, en Slackware, solo debe hacer que el script apropiado en /etc/rc.d no sea ejecutable. Para evitar que Apache comience en el próximo arranque:
chmod -x /etc/rc.d/rc.httpd
Para detener un Apache que comenzó en el arranque: /etc/rc.d/rc.httpd stop deberá ser root.
Arch es un poco más complejo. El archivo /etc/rc.conf, un script de shell, tiene una matriz DAEMONS. Para evitar que Apache comience en el arranque, debe cambiar esta línea en /etc/rc.conf:
1) toque la superclave en su teclado 2) busque 'Aplicaciones de inicio' 3) elija el programa que desea deshabilitar 4) presione como esta respuesta si worx.
Respuestas:
Dependiendo de su distribución, use la herramienta chkconfig o update-rc.d para habilitar / deshabilitar los servicios del sistema.
En un sistema de estilo redhat / suse / mandrake:
En Debian:
Consulte sus páginas de manual para obtener más información.
fuente
Si se trata de un sistema Ubuntu moderno y algunas otras distribuciones, es posible que deba lidiar con una combinación de scripts de inicio tradicionales y scripts de arranque. La gestión de scripts de inicio está cubierta por otras respuestas. La siguiente es una forma de detener el inicio de un servicio inicial en el arranque:
El problema con este método es que no le permite iniciar el servicio usando:
Una alternativa a esto es abrir el
servicename.conf
archivo en su editor favorito y comentar las líneas que comienzan con:Es decir, cambie esto a
donde el "..." es lo que fue después de "comenzar" anteriormente. De esta manera, cuando desee volver a habilitarlo, no tiene que recordar cuáles fueron los parámetros de "inicio".
Finalmente, si tiene una nueva versión de arranque, simplemente puede agregar la palabra "manual" al final del archivo de configuración. Puede hacer esto directamente desde el shell:
Esto provocará que upstart ignore cualquier frase de "inicio" anterior en el archivo.
fuente
En los recientes sistemas Fedora y Future RHEL
deshabilitará el servicio httpd
fuente
systmctl
comando funcionó bien.Para enumerar todos los servicios de inicio
Para detener la ejecución de un servicio al iniciar
Por ejemplo, si necesitamos dejar de ejecutar el servidor ssh al inicio
Podemos habilitar esto nuevamente usando
Casi todas las distribuciones de Linux usan systemd para los servicios de arranque de arranque. Entonces, los comandos anteriores funcionan para la mayoría de las distribuciones.
fuente
Slackware y Arch Linux tienen métodos similares para detener / iniciar procesos en el arranque, diferentes a los ejemplos de Ubuntu y de estilo Redhat dados anteriormente.
Tanto en Slackware como en Linux, los scripts sh existen en el directorio
/etc/rc.d
, generalmente un script por demonio o un script por subsistema.Por ejemplo, Slackware inicia el servidor web Apache con un script
/etc/rc.d/rc.httpd
, llamado en el momento apropiado durante el inicio del sistema con un argumento de "inicio". Arch Linux tiene scripts con nombres diferentes, pero sucede lo mismo.Para evitar que se inicie algún proceso durante el arranque del sistema, en Slackware, solo debe hacer que el script apropiado en /etc/rc.d no sea ejecutable. Para evitar que Apache comience en el próximo arranque:
Para detener un Apache que comenzó en el arranque:
/etc/rc.d/rc.httpd stop
deberá ser root.Arch es un poco más complejo. El archivo /etc/rc.conf, un script de shell, tiene una matriz DAEMONS. Para evitar que Apache comience en el arranque, debe cambiar esta línea en /etc/rc.conf:
A esta línea:
Para detener un apache que ya se está ejecutando, debe ejecutarlo
/etc/rc.d/httpd stop
como root.fuente
En Ubuntu 10.04 puedes controlar algunos programas de inicio desde la GUI.
System→ Preferences→Startup Applications
fuente
1) toque la superclave en su teclado 2) busque 'Aplicaciones de inicio' 3) elija el programa que desea deshabilitar 4) presione como esta respuesta si worx.
fuente