Ao trabalhar com serviços em uma distroDependendo do tipo de sistema que você está usando (SysV init, Upstart, systemd, ...), a maneira como os serviços podem ser interrompidos, iniciados, interrompidos, reiniciados, etc., pode variar. É um ponto onde muitos duvidam de como se faz de fato, e o fato de existirem vários sistemas diferentes não ajuda alguns usuários mais inexperientes, que tentam fazê-lo com o comando errado.
Portanto, vou mostrar um tutorial simples com o qual ficará mais claro para você como você pode trabalhar na sua distro, seja ela qual for. Para fazer isso, a primeira coisa que você precisa saber é o tipo de demônio que está usando. Como eu disse, nem todas as distros usam o mesmo tipo de sistema de inicialização. Na verdade, como você sabe, alguns se opuseram ao novo systemd e geraram forks ou derivados com o antigo SysV, como é o caso do Devuan em comparação com o Debian ...
Como posso saber o sistema que minha distribuição usa? Bem, você pode descobrir pesquisando essas rotas e, se as tiver, terá esse sistema em sua distribuição:
- Para saber se você tem o systemd: encontre o caminho / usr / lib / systemd
- Para saber se você tem Upstart: encontre este outro caminho / usr / share / upstart
- Para saber se você tem SysV init: encontre o caminho /etc/init.d
- Feno outrosMesmo que seja um pouco mais raro, nesses casos particulares, você pode fazer algo semelhante se suspeitar que eles não são os anteriores.
Outra maneira de tornar ainda mais fácil, porque é igual para todos, é procurar informações em / proc sobre o PID = 1, ou seja, o primeiro processo do qual o resto trava e que corresponde justamente a este daemon de inicialização. Para fazer isso, basta executar o seguinte comando e ele retornará o nome:
sudo stat /proc/1/exe
Agora você sabe qual sistema você tem, portanto, vamos os comandos que você pode usar para gerenciar serviços:
- Inicialização SysV: /etc/init.d/[service_demon_name] [ação]
- sistema: systemctl [ação] [service_demon_name]
- Upstart: serviço [service_demon_name] [ação]
- outros: Se você usa um sistema diferente, é melhor olhar o manual. Por exemplo, alguns casos raros no Linux e outros Unixes podem usar o sinal do processo SIGHUP para redefinir um serviço: kill -HUP $ (cat / var / run / [service-PID])
Você deveria substituir [ação] para o que você precisa fazer. Por exemplo, se você precisar reiniciar, use reset, se você quiser parar de usar parar, se quiser começar a usar estrela, etc. E substitua [daemon_name] pelo nome do daemon do serviço que você deseja iniciar. Por exemplo:
systemctl reset httpd
Espero que você tenha entendido melhor agora.
Ainda existem sistemas com upstart? Acho que apenas um Ubuntu antigo.
Além disso, mesmo se você tiver o systemd, você ainda pode ter a pasta etc / init.d
Eu prefiro usar algum outro comando como ps ou pstree, e não abusar de sudo-this-sudo-that.
lembranças
O comando "service" funciona em sistemas init.d e systemd