adicionar serviço de inicialização no 16.04

10

eu preciso executar o projeto "node js" em 16.4 permanentemente

e use o pacote forever para rodar em segundo plano no ubuntu

agora eu quero adicionar um serviço de inicialização ao ubuntu, mas eu procurei, não há resultado.

Eu criei um arquivo chamado test.confpara/etc/init.d

test.conf:

start on startup
exec forever start /root/node/node_modules/.bin/www
Hesam Pourghazian
fonte
Você precisará usar um systemd servicepara isso.
George Udosen 19/03/19
Você estará usandomysql
George Udosen
@ George Há treinamento neste tópico?
Hesam Pourghazian 19/03
A qual tópico você está se referindo, você configurou forevere só precisa de uma maneira de executá-lo no serviço Ubuntu?
George Udosen 19/03/19
@George yes ...
Hesam Pourghazian

Respostas:

13

No mais simples para usar systemd service:

  1. Instalar forever:

    [sudo] npm install forever -g
    
  2. Escreva e armazene o script para executar no local preferido.

  3. Escreva o seguinte Systemd service:

    [Unit]
    Description=forever service
    After=network.target
    
    
    [Service]
    ExecStart=/home/george/.npm-global/bin/forever start /root/node/node_modules/.bin/www
    ExecStop=/home/george/.npm-global/bin/forever stop /root/node/node_modules/.bin/www
    Restart=always
    RestartSec=10                       # Restart service after 10 seconds if node service crashes
    StandardOutput=syslog               # Output to syslog
    StandardError=syslog                # Output to syslog
    SyslogIdentifier=nodejs-example
    
    
    [Install]
    WantedBy=multi-user.target
    
  4. Salve o systemd servicearquivo /etc/systemd/systemcomo myforever.service(ou com o nome que quiser).

  5. Inicie o serviço e ative na inicialização.

    sudo systemctl start myforever.service
    sudo systemctl enable myforever.service
    
  6. Verifique se está em execução:

    sudo systemctl status myforever.service
    
  7. Para parar e desabilitar a qualquer momento:

    sudo systemctl stop myforever.service
    sudo systemctl disable myforever.service
    

NOTA:

  1. Esta é uma versão simplificada de systemd servicevárias opções disponíveis
  2. O serviço também pode ser chamado myforeversem a .serviceextensão, systemdirá escolher o arquivo certo
  3. Este /home/george/.npm-global/bin/foreveré o lugar onde meus nodemódulos são mantidos, o seu será diferente. Encontre comwhich forever

Informação adicional:

https://www.axllent.org/docs/view/nodejs-service-with-systemd/

George Udosen
fonte
finalmente eu uso o pacote "service-systemd"
Hesam Pourghazian
@ david6 sim, é, graças irá atualizar
George Udosen