Eu sei que o método normal para iniciar ou parar o apache2 no linux é:
sudo /etc/init.d/apache2 start|stop
Ou…
sudo service apache2 start|stop
Ou…
sudo systemctl start|stop apache2
Mas, em caso de emergência, quero parar os processos com o comando "kill". Para isso utilizo o seguinte comando para parar o PID:
for pid in $(ps -ef | grep -i '[a]pache*' | awk '{print $2}'); do kill -9 $pid &> /dev/null; done
fora
user@user:~$ ps -ef | grep -i '[a]pache*'
root 173437 1 0 19:24 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 173438 173437 0 19:24 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 173439 173437 0 19:24 ? 00:00:00 /usr/sbin/apache2 -k start
user@user:~$ for pid in $(ps -ef | grep -i '[a]pache*' | awk '{print $2}'); do sudo kill -9 $pid &> /dev/null; done
user@user:~$ ps -ef | grep -i '[a]pache*'
root 174321 1 0 19:24 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 174322 174321 0 19:24 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 174323 174321 0 19:24 ? 00:00:00 /usr/sbin/apache2 -k start
... e novos PIDs apache2 são lançados
o que há de errado com esse comando?
obrigado
PD: Encontrei este comando neste site há muito tempo, mas não me lembro onde e, portanto, não posso fazer referência ao autor. Me desculpe por isso
Você mencionou
systemctl stop apache2
, talvez porque seu Apache inicia como um serviço systemd. Em caso afirmativo, o motivo pelo qual ele é reiniciado provavelmente estáRestart=
no arquivo de configuração da unidade de serviço relevante (apache2.service
).Veja
man 5 systemd.service
:Leia o manual para aprender o significado de cada valor possível. Talvez você queira
Restart=no
. Se não, não perca este fragmento:Se você quiser usar, por exemplo
Restart=on-abort
, e ainda poder matar o Apache com SIGKILL (kill -s KILL
oukill -9
) e não ressuscitá-lo, considere colocarno arquivo de configuração da unidade.
Observação SIGKILL deve ser usado como último recurso.
systemctl stop
deve ser sua escolha anterior. Não sei a que "emergência" você quis dizer, mas o fato de o serviço ter sido reiniciado me faz acreditar que o systemd estava operacional e provavelmentesystemctl stop apache2
funcionaria.