Para reiniciar um serviço (por exemplo, httpd), devo usar /etc/init.d httpd restart ou / sbin / service httpd restart?

6

Sempre que eu precisar reiniciar o Apache no meu RHEL VPS, digite sudo /sbin/service httpd restart . No entanto, muitos artigos sugerem usar sudo /etc/init.d httpd restart .

Existe alguma diferença? Se houver, quando devo usar cada um deles?

    
por Andy Stewart 17.11.2009 / 19:10

3 respostas

16

Da página do manual:

service runs a System V init script in as predictable environment as possible, removing most environment variables and with current working directory set to /.

Em seguida, chama o script init.d . Então, ambos realizam a mesma coisa, exceto chamar o script via /sbin/service apenas garante que algumas variáveis de ambiente em seu shell não estraguem o script init.d .

    
por 17.11.2009 / 19:19
5

Usar /sbin/service é bom porque dá ao daemon um ambiente novo para trabalhar, sem que quaisquer variáveis de ambiente potencialmente irritantes atrapalhem e causem estragos. Pelo menos, essa é a razão para exigi-lo no trabalho; Eu sempre usei os scripts init diretamente em minhas outras máquinas de distribuição e isso não causou um problema visível, mas tenho certeza de que houve um problema real no qual /sbin/service está trabalhando. Talvez os sistemas RHEL só tenham mais lixo por aí no ambiente padrão.

    
por 17.11.2009 / 19:15
4

Meu conselho seria usar o que você quiser, sempre que você estiver logado na máquina, e usar /etc/(init.d|rc.d)/daemon-name se você estiver criando scripts, a razão é que o último é geralmente mais portátil. IIRC, as únicas distros que vêm com /sbin/service na instalação dos pacotes básicos são com sabor RH, isto é, RHEL, CentOS, Fedora. Meus sistemas Debian, por exemplo, não possuem este script, no entanto isso pode não importar para o seu ambiente.

    
por 17.11.2009 / 19:26

Tags