Por que não precisamos iniciar o servidor Apache no Ubuntu como no Windows?

5

Eu tenho o servidor LAMP instalado no meu sistema e ele está funcionando perfeitamente. No entanto, estou muito curioso para saber por que não precisamos iniciar o servidor Apache no LAMP. Quando temos o WAMP no Windows, pelo contrário, temos que iniciá-lo e ativar o Apache e o MySQL. O Apache começa quando iniciamos o Ubuntu (ou seja, ele é executado sempre em segundo plano) ou é iniciado quando abrimos o host local?

As respostas para a pergunta " Iniciar manualmente o servidor LAMP " descrevem como iniciar manualmente o LAMP , mas não como funciona internamente para iniciar o LAMP automaticamente.

    
por Rahul Satal 28.07.2015 / 11:53

1 resposta

8

Linux em geral, também o Ubuntu possui diretórios onde você pode colocar scripts que iniciam / param / reiniciam / recarregam um serviço (ou qualquer ação que esse serviço possa fornecer): /etc/init.d/ (= antigo mas ainda usado com muita frequência) .

% bl0ck_qu0te%
/etc/init.d$ ls
apache2             glibc.sh               mysql          screen-cleanup
apparmor            halt                   mysql-ndb      sendsigs
...

Como exemplo, o início do script apache2 (todos os outros serão semelhantes em estilo):

$ more apache2
#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          apache2
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop apache2 web server
### END INIT INFO
#
# apache2               This init.d script is used to start apache2.
#                       It basically just calls apache2ctl.

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"

...

Existe também /etc/init (= upstart):

% bl0ck_qu0te%
cups - CUPS Printing spooler and server

description     "CUPS printing spooler/server"
author          "Michael Sweet <[email protected]>"

start on (filesystem
          and (started dbus or runlevel [2345]))
stop on runlevel [016]

respawn
respawn limit 3 12

Então, basicamente, dentro desses scripts / configurações, é indicado que outro serviço precisa ser iniciado antes que esse serviço possa ser iniciado e qual serviço precisa ter parado antes que esse serviço possa ser interrompido.

% bl0ck_qu0te%

Quando você instala um serviço como o apache (ou mysql (databaseserver) ou cups (servidor de impressão)), geralmente também inclui um script de inicialização E isso também é ativado (desde que: se instalado, ele está sendo executado).

Portanto, a resposta é: ele está sempre em execução e não iniciado quando você acessa um URL (ou seja, link ).

Por sinal, também é possível interromper um serviço, remover o início automático de /etc/init.d/ e iniciar manualmente esse serviço.

Existem 2 gerentes de sessão que cuidam disso: o antigo Ubuntu (ie. < 15.10) usa upstart . Novo Ubuntu (> 15.10) usa systemd .

  • Upstart seria service start apache2 ou service stop apache2 .
  • O Systemd seria systemctl start apache2 ou systemctl start apache2 , mas também suporta o método que o Upstart usa nos sistemas Debian / Ubuntu.
por Rinzwind 31.07.2015 / 09:25

Tags