Cómo iniciar automáticamente un servicio (apache2) con Linux Mint

11

(Strangley) Mi Apache2 instalado no se inicia al iniciar sesión en Linux Mint.

Ejecutar este comando lo pone en marcha:

sudo service apache2 start

¿Cómo debo intentar iniciar este servicio en cada inicio de sesión?

eoinoc
fuente
Puede colocar ese comando ~/.xinitrc, que se ejecutará al inicio.
n0pe
2
@MaxMackie Por el contrario, ~/.xinitrcse ejecuta en el momento de inicio de sesión, lo cual no es correcto. Apache necesita ser iniciado por root en el momento del arranque.
Gilles 'SO- deja de ser malvado'
@Gilles, cierto, me olvidé de eso, gracias por corregir. Sin embargo, ¿por qué Apache debe iniciarse en el arranque? ¿El inicio de sesión no lograría aproximadamente lo mismo?
n0pe
@MaxMackie No, si no inicias sesión inmediatamente después del arranque, obviamente. Además, Apache no se ejecuta como tú, por lo que deberías otorgarle privilegios. Debería comenzar en parte de los scripts de arranque, y normalmente lo hace.
Gilles 'SO- deja de ser malvado'
@Gilles a la derecha. Gracias por arrojar luz sobre eso.
n0pe

Respuestas:

12

Debian (Ubuntu / Linux Mint)

rcconf (CLI-GUI)

sudo apt-get install rcconf
sudo rcconf

update-rc.d

sudo update-rc.d -f apache2 add

o

sudo update-rc.d apache2 defaults

RedHat / Fedora / CentOS

chkconfig

sudo chkconfig --add apache2

o

sudo chkconfig -- level 35 apache2 on
earthmeLon
fuente
Apache ya estaba marcado cuando ejecuté rcconf.
eoinoc
Ejecución de la update-rc.dventaja de comandos a un error: update-rc.d: warning: apache2 start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5).
eoinoc
¿Ha proporcionado los valores predeterminados de update-rc.d apache2 o update-rc.d -f apache2 add 3 5
earthmeLon el
1
Gracias, pero tampoco funcionó. Primero resultó en una advertencia de "ya existe", el segundo resultó en warning: apache2 start runlevel arguments (none) do not batch LSB default-Start values (2 3 4 5).
eoinoc
6

Dado que Mint se basa en Ubuntu y Ubuntu ha cambiado a Upstart, el Upstart Cookbook tiene toda la información para iniciar el servicio en el arranque o en cualquier nivel de ejecución especificado.

Este sitio proporciona un libro de cocina detallado para iniciar Apache en el arranque.

bsd
fuente
Esa página habla de colocar un script bash en /etc/init.d/apache2. Pero ese archivo ya está lleno de un script bash mucho más complicado, que debe haber sido colocado allí por el propio Apache.
eoinoc
3

Otra causa del mismo problema es la prioridad de los enlaces apache en rc [0-6] .d. Los míos fueron S90 y K09, y Apache no comenzó en el arranque. Establecer las prioridades en sus valores predeterminados, 20, funcionó para mí. Los enlaces existentes deben eliminarse primero.

sudo update-rc.d -f apache2 remove
sudo update-rc.d apache2 defaults
htoip
fuente
2

En el apagado, vi un error:

Error de sintaxis en la línea 230 de /etc/apach2/apache.conf .... / etc / apache / sites-enable / mysite: No existe tal archivo o directorio

La cuestión era que mysiteestaba enlazado a un archivo en mi carpeta de inicio.

Eso normalmente no debería ser un problema, pensé.

Pero hasta donde yo sé, mi partición de inicio está encriptada . Por lo tanto, supongo que Apache no pudo leer el archivo del sitio virtual cuando se estaba cargando. El archivo no fue accesible hasta que escribí mi contraseña.

Una situación compleja, y tardé meses en resolverlo :)

eoinoc
fuente
Entonces, ¿cómo lo resolviste?
Jonas Äppelgran
0

Una nueva respuesta actualizada en 2019:

sudo systemctl start httpd

sudo systemctl habilita httpd

El comando systemctl es una nueva herramienta para controlar el sistema y el servicio systemd. Este es el reemplazo de la antigua administración del sistema de inicio SysV. La mayoría de los sistemas operativos Linux modernos están utilizando esta nueva herramienta. Si está trabajando con CentOS 7, Ubuntu 16.04 o posterior o el sistema Debian 9. Han optado por systemd ahora.

El servicio habilitado se inicia automáticamente al iniciar el sistema. Esta es una opción similar para systemd que chkconfig para el inicio de SysV.

rauldeng
fuente
1
Puede considerar cambiar el orden, para que esté habilitado antes de solicitar que se inicie.
Jeff Schaller