Executando o script upstart em 17.04?

1

Executando 17.04 (Zesty Zapus) e tentando iniciar um script iniciante, mas notei que ele não está sendo executado. Então eu notei que o upstart nem é listado como um pacote instalado, mesmo se houver muitos scripts em /etc/init . Aparentemente, eles não são executados, uma vez que a introdução de um erro de digitação, por exemplo, no cron, não afeta sua inicialização.

Como devo executar o script inicial? Instalar o upstart ou executá-lo através de alguma camada do systemd? A instalação do start-up quebra algo quando os outros scripts em /etc/init são executados de repente?

    
por Nicklas Karlsson 30.06.2017 / 09:33

2 respostas

1

Aparentemente, o newst não está incluído na versão do servidor OOTB, embora existam scripts em /etc/init (um pouco confuso).

Eu reescrevi o script upstart como um arquivo unitário systemd usando principalmente a página wiki do Ubuntu no systemd para usuários iniciantes como um guia e habilitado de forma normal.

    
por Nicklas Karlsson 30.06.2017 / 20:25
1

Os passos acima funcionaram lindamente, eu fiz alguns passos detalhados na minha resposta aqui:

Meu env é o seguinte

  1. Ubuntu às 17.10
  2. Eu tenho um aplicativo python no servidor Gunicorn 19.x, preciso iniciar esse aplicativo como um serviço.

Primeiramente, você precisa escrever um arquivo foo.service.

[Unit] 
Description=FooServer 

[Service] 
Restart=on-failure
WorkingDirectory=/path/to/your/working/directory/where the foo lives
ExecStart=/what/process/will call foo eg: in my case I used gunicorn app:app
ExecReload=/bin/kill -HUP $MAINPID 
KillSignal=SIGINT 

[Install] 
WantedBy=multi-user.target

O significado de cada palavra no lado esquerdo do sinal '=' e seu equivalente em (para o anterior) está no link link

Quando o arquivo estiver pronto, digamos que você o nomeie como 'foo.service' (a extensão .service é importante)

Você precisa colocar o arquivo em /lib/systemd/system

Depois disso, você precisa ativar o serviço chamando

systemctl enable foo

O que solicitará que você digite sua senha de root, pois ela criará links simbólicos em algumas pastas baseadas em acesso raiz, em que todos os serviços participam.

Se você chegou até aqui sem qualquer aborrecimento, você é bom. Seu serviço é, portanto, criado. Comece chamando

sudo service foo start

systemctl status foo para ver o status sudo service foo stop para parar o serviço

Eu estava na página do Gunicorn durante todo o dia de hoje e tentei todas as várias opções e nenhuma delas funcionou e, finalmente, esta funcionou. Muito obrigado @Zanna e @Nicklas Karlsson

    
por siddharthrc 27.02.2018 / 21:07