Iniciante no Debian?

20

Eu criei um script inicial no Ubuntu, pensando que seria o mesmo para o Debian. Mas o Debian não tem uma /etc/initpasta que o Ubuntu tenha. Eu fui para a página de download inicial e, vendo que eles têm pacotes, fiz um apt-get install upstart, mas ele pede para remover o sysvinit, que eu sei que irá / pode estragar meu sistema. Então, como faço para que meu script Ubuntu funcione no Debian?

theTuxRacer
fonte

Respostas:

12

Não é diretamente sobre Debian vs Ubuntu, é sobre SysVinit vs Upstart . O padrão do Debian é o SysVinit; você pode instalar o Upstart, mas precisa saber o que está fazendo e deve estar familiarizado com ele antes mesmo de pensar em instalá-lo em um servidor de produção. Embora seja teoricamente possível instalar os dois, com apenas um deles sendo executado como processo número 1, o Debian não suporta isso imediatamente.

O Upstart é mais novo que o SysVinit e possui mais recursos, o que explica por que você não pode simplesmente pegar uma descrição do serviço Upstart e alimentá-la no SysVinit. Você terá que escrever um script para/etc/init.d . Basicamente, esse script precisa examinar seu primeiro argumento ( $1) e start/ stopou restarto serviço conforme indicado.

Se você estava usando eventos Upstart para determinar quando iniciar o script, precisará usar outros métodos. O iniciante reúne eventos de muitas fontes diferentes; você pode obter o gatilho de onde quer que o Upstart o obtenha, o Upstart é apenas uma maneira conveniente de não precisar procurar gatilhos em muitos locais e protocolos diferentes.

Gilles 'SO- parar de ser mau'
fonte
Então, como o Ubuntu usa o iniciante e o SysVinit (ou parece)?
ColinM
@ColinM O Ubuntu não usa o SysVinit.
Gilles 'SO- stop be evil'
5

A razão para remover sysvinité porque esses dois são conflitos. Além disso, observe que isso sysvinité considerado essencial (leia-se: não deve ser removido, a menos que você saiba o que está fazendo ).

Parte da saída de 'aptitude show upstart':

Conflicts: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job

Se você puder dar ao luxo de mangueira no sistema, vá em frente e instale-o.

tshepang
fonte
Não, é um servidor de produção. Não há como criar um serviço que possa iniciar e parar no terminal?
theTuxRacer 18/01
Em seguida, coloque seu script /etc/init.de faça com que ele compreenda o mínimo de start|stop|restartcomandos. Você não precisa upstartexecutar o script, apenas sua linha de comando usual.
18711 alex
@kau Que tal você clonar seu servidor de produção em alguma máquina de teste e instalar o inicio e teste?
tshepang
@alex @Tshepang Você pode dar uma olhada e aconselhar, por favor? paste.ubuntu.com/555683 O jar não está sendo executado.
theTuxRacer
Você não precisa de execlá - leia algumas páginas de manual e / ou livros sobre scripts de shell.
alex