Come avviare automaticamente un servizio (apache2) con Linux Mint


11

(Strangley) Il mio Apache2 installato non si avvia quando accedo a Linux Mint.

L'esecuzione di questo comando fa partire:

sudo service apache2 start

Come devo tentare di avviare questo servizio ad ogni accesso?


È possibile inserire quel comando ~/.xinitrc, che verrà eseguito all'avvio.
n0pe

2
@MaxMackie Al contrario, ~/.xinitrcviene eseguito al momento dell'accesso, il che non è corretto. Apache deve essere avviato da root all'avvio.
Gilles 'SO- smetti di essere malvagio'

@Gilles, giusto, me ne sono dimenticato, grazie per la correzione. Tuttavia, perché è necessario avviare apache all'avvio? Il login non compirebbe all'incirca la stessa cosa?
n0pe

@MaxMackie Non se non accedi subito dopo l'avvio, ovviamente. Inoltre Apache non funziona come te, quindi dovresti concedergli i privilegi. Dovrebbe iniziare da una parte degli script di avvio e normalmente lo fa.
Gilles 'SO- smetti di essere malvagio'

@Gilles giusto. Grazie per far luce su questo.
n0pe

Risposte:


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

Apache era già stato verificato quando ho eseguito rcconf.
eoinoc,

Esecuzione del update-rc.dcavo di comando di un errore: update-rc.d: warning: apache2 start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5).
eoinoc,

Hai fornito le impostazioni predefinite di update-rc.d apache2 o update-rc.d -f apache2 add 3 5
earthmeLon

1
Grazie, ma nessuno dei due ha funzionato. In primo luogo ha provocato un avviso "già esistente", il secondo ha comportato warning: apache2 start runlevel arguments (none) do not batch LSB default-Start values (2 3 4 5).
eoinoc,

6

Poiché Mint si basa su Ubuntu e Ubuntu è passato a Upstart, il Cookbook Upstart ha tutte le informazioni per l'avvio del servizio all'avvio o a qualsiasi runlevel specificato.

Questo sito fornisce un ricettario dettagliato per l'avvio di Apache all'avvio.


Quella pagina parla di come inserire uno script bash /etc/init.d/apache2. Ma quel file è già pieno di uno script bash molto più complicato, che deve essere stato inserito lì da Apache stesso.
eoinoc,

3

Un'altra causa dello stesso problema è la priorità dei collegamenti apache in rc [0-6] .d. I miei erano S90 e K09 e Apache non sarebbe partito all'avvio. Stabilire le priorità ai valori predefiniti, 20 anni, ha funzionato per me. I collegamenti esistenti devono prima essere rimossi.

sudo update-rc.d -f apache2 remove
sudo update-rc.d apache2 defaults

2

Allo spegnimento, ho visto un errore:

Errore di sintassi sulla riga 230 di /etc/apach2/apache.conf .... / etc / apache / sites-abilita / mysite: nessun file o directory

Il fatto era che mysiteera collegato a un file nella mia cartella home.

Normalmente non dovrebbe essere un problema, ho pensato.

Ma per quanto ne so, la mia partizione home è crittografata . Pertanto, suppongo che Apache non potesse leggere il file del sito virtuale durante il caricamento. Il file non era accessibile fino a quando non ho inserito la mia password.

Una situazione complessa, e ci sono voluti mesi per risolverlo :)


Quindi, come hai fatto a risolverlo?
Jonas Äppelgran,

0

Una nuova risposta aggiornata nel 2019:

sudo systemctl start httpd

sudo systemctl abilita httpd

Il comando systemctl è un nuovo strumento per controllare il sistema e il servizio systemd. Questa è la sostituzione della vecchia gestione del sistema init SysV. La maggior parte dei moderni sistemi operativi Linux utilizzano questo nuovo strumento. Se stai lavorando con CentOS 7, Ubuntu 16.04 o successivo o Debian 9. Hanno optato per systemd ora.

Il servizio abilitato si avvia automaticamente all'avvio del sistema. Questa è un'opzione simile per systemd rispetto a chkconfig per l'init SysV.


1
Potresti considerare di invertire l'ordine, in modo che sia abilitato prima di chiederne l'avvio.
Jeff Schaller
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.