Como nomear e onde colocar o script upstart?

3

Eu quero iniciar um watchdog kicker na inicialização, mas não tenho certeza de como nomear e onde colocar meu script inicial.

start on startup
respawn
script
  /usr/sbin/watchdog
end script

Referência: link

Também estou apenas tentando entender a diferença entre sysVinit, init.d, rc.local, upstart (mais recente e maior?).

Qual é a razão para o que parece ser muitas maneiras de fazer a mesma coisa, por exemplo:

service watchdog start 
/etc/init.d/watchdog start
/usr/sbin/watchdog
    
por tarabyte 18.07.2015 / 02:57

1 resposta

2

Os jobs do sistema Upstart têm uma extensão .conf e são colocados em /etc/init . Então, você pode criar /etc/init/watchdog.conf contendo essas linhas, e você deve ter uma definição de serviço do Upstart funcionando.

  1. service watchdog start : O comando service é geralmente um script que escolhe o serviço init correto a ser usado (ou seja, se executa comandos ou scripts do Upstart em /etc/init.d ou chama systemctl se o systemd estiver sendo usado). li>
  2. /etc/init.d/watchdog start está chamando o script de init do System V diretamente. Não é o que você deseja fazer se for usar um trabalho do Upstart para isso.
  3. /usr/sbin/watchdog apenas executa o binário diretamente. A menos que o programa daemonizes, isso (IMHO) é útil apenas para depuração. Você perde o recurso de monitoramento e controle de scripts de inicialização, se ele daemoniza, e a capacidade de ressurgimento do Upstart.

(2) existe porque as pessoas geralmente querem uma maneira estruturada e controlável de iniciar serviços, o que (3) não oferece. (1) existe porque (2) não oferece o suficiente (é por isso que o Upstart, systemd, OpenRC, etc., foram feitos).

    
por 18.07.2015 / 06:26