Como iniciar automaticamente um serviço (apache2) com o Linux Mint


11

(Strangley) Meu Apache2 instalado não inicia ao efetuar login no Linux Mint.

A execução deste comando faz o seguinte:

sudo service apache2 start

Como devo tentar iniciar este serviço em cada login?


Você pode inserir esse comando ~/.xinitrc, que será executado na inicialização.
N0pe

2
@MaxMackie Pelo contrário, ~/.xinitrcé executado no momento do login, o que não está certo. O Apache precisa ser iniciado pela raiz no momento da inicialização.
Gilles 'SO- stop be evil' em

@ Gilles, certo, eu esqueci disso, obrigado por corrigir. No entanto, por que o apache precisa ser iniciado na inicialização? O login não realizaria aproximadamente a mesma coisa?
N0pe

@ MaxMackie Não, se você não fizer o login imediatamente após a inicialização, obviamente. Além disso, o Apache não é executado como você, então você teria que conceder privilégios. Ele deve iniciar parte dos scripts de inicialização e normalmente inicia.
Gilles 'SO- stop be evil' em

@Gilles certo. Obrigado por esclarecer isso.
N0pe 9/03/12

Respostas:


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

ou

sudo update-rc.d apache2 defaults

RedHat / Fedora / CentOS

chkconfig

sudo chkconfig --add apache2

ou

sudo chkconfig -- level 35 apache2 on

O Apache já estava marcado quando executei o rcconf.
eoinoc

Executando o update-rc.dchumbo comando para um erro: update-rc.d: warning: apache2 start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5).
eoinoc

Você deu defaults apache2 update-rc.d ou update-rc.d -f apache2 adicionar 3 5
earthmeLon

1
Obrigado, mas nem funcionou. O primeiro resultou em um aviso "já existe", o segundo resultou em warning: apache2 start runlevel arguments (none) do not batch LSB default-Start values (2 3 4 5).
eoinoc

6

Como o Mint é baseado no Ubuntu e o Ubuntu mudou para o Upstart, o Upstart Cookbook tem todas as informações para iniciar um serviço na inicialização ou em qualquer nível de execução especificado.

Este site fornece um livro de receitas detalhado para iniciar o Apache na inicialização.


Essa página fala sobre como inserir um script bash /etc/init.d/apache2. Mas esse arquivo já está cheio de um script bash muito mais complicado, que deve ter sido colocado lá pelo próprio Apache.
eoinoc

3

Outra causa do mesmo problema é a prioridade dos links do apache em rc [0-6] .d. Os meus eram S90 e K09, e o Apache não iniciava na inicialização. Definir as prioridades em seus padrões, 20, funcionou para mim. Os links existentes precisam ser removidos primeiro.

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

2

No desligamento, vi um erro:

Erro de sintaxe na linha 230 de /etc/apach2/apache.conf .... / etc / apache / sites-enable / mysite: Esse arquivo ou diretório não existe

O problema era que mysitehavia um link simbólico para um arquivo na minha pasta pessoal.

Isso normalmente não deveria ser um problema, pensei.

Mas até onde eu sei, minha partição pessoal é criptografada . Portanto, acho que o Apache não pôde ler o arquivo do site virtual durante o carregamento. O arquivo não estava acessível até eu digitar minha senha.

Uma situação complexa e demorou meses para resolver :)


Então, como você resolveu isso?
Jonas Äppelgran

0

Uma nova resposta atualizada em 2019:

sudo systemctl start httpd

sudo systemctl enable httpd

O comando systemctl é uma nova ferramenta para controlar o sistema e o serviço systemd. Esta é a substituição do gerenciamento antigo do sistema SysV init. A maioria dos sistemas operacionais Linux modernos está usando essa nova ferramenta. Se você estiver trabalhando com o CentOS 7, Ubuntu 16.04 ou posterior ou sistema Debian 9. Eles optaram pelo systemd agora.

O serviço ativado é iniciado automaticamente na inicialização do sistema. Esta é a opção semelhante para systemd que chkconfig para o init do SysV.


1
Você pode inverter o pedido, para que ele seja ativado antes de solicitar que ele inicie.
Jeff Schaller
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.