ajouter un service de démarrage le 16.04

10

j'ai besoin d'exécuter le projet "node js" sur 16.4 en permanence

et utiliser le package forever pour l'exécuter en arrière-plan dans ubuntu

maintenant je veux ajouter un service de démarrage à ubuntu mais j'ai cherché il n'y a pas de résultat.

J'ai créé un fichier appelé test.confà/etc/init.d

test.conf:

start on startup
exec forever start /root/node/node_modules/.bin/www
Hesam Pourghazian
la source
Vous devrez utiliser un systemd servicepour cela.
George Udosen
Utiliserez-vousmysql
George Udosen
@George Il y a une formation sur ce sujet?
Hesam Pourghazian
À quel sujet faites-vous référence, avez-vous configuré foreveret avez-vous juste besoin d'un moyen de l'exécuter dans le service Ubuntu?
George Udosen
@George yes ...
Hesam Pourghazian

Réponses:

13

De la manière la plus simple à utiliser systemd service:

  1. Installer forever:

    [sudo] npm install forever -g
    
  2. Écrivez et stockez le script à exécuter à l'emplacement préféré.

  3. Écrivez le 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. Enregistrez le systemd servicefichier /etc/systemd/systemsous myforever.service(ou sous le nom de votre choix).

  5. Démarrez le service et activez-le au démarrage.

    sudo systemctl start myforever.service
    sudo systemctl enable myforever.service
    
  6. Vérifiez s'il fonctionne:

    sudo systemctl status myforever.service
    
  7. Pour l'arrêter et le désactiver à tout moment:

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

REMARQUE:

  1. Il s'agit d'une version simplifiée de systemd servicenombreuses options disponibles
  2. Le service peut également être appelé myforeversans l' .serviceextension, systemdsélectionnera le bon fichier
  3. C'est /home/george/.npm-global/bin/foreverlà que mes nodemodules sont conservés, le vôtre sera différent. Trouvez-le avecwhich forever

Information additionnelle:

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

George Udosen
la source
enfin j'utilise le package "service-systemd"
Hesam Pourghazian
@ david6 oui, merci de mettre à jour
George Udosen