Como iniciar o aplicativo node.js na inicialização da máquina, criando um serviço de inicialização

0

Minha máquina é Ubuntu 16.04. Eu quero iniciar meu aplicativo node.js quando a máquina é inicializada toda vez. De acordo com este post sobre serviços de início automático. Eu tentei fazer um serviço fazendo o seguinte:

1) Eu criei um script para iniciar o aplicativo do nó com o módulo forever do nó.

#!/bin/bash

echo "Starting App"

forever -a start /opt/app/app.js

echo "App started"

2) Eu nomeei este script startApp.sh e coloquei este script dentro da pasta /etc/init.d / .

3) Eu corri o comando update-rc.d startApp defaults

Mas recebi o erro update-rc.d: error: o initscript não existe: /etc/init.d/startApp

O que eu fiz de errado?

    
por b11 03.05.2018 / 22:42

1 resposta

0

Recomendamos enfaticamente que você use o 'padrão' init.d dos serviços de redação. Isso também cria menos confusão quando outra pessoa está olhando para ela que está ciente dos serviços init.d. Por favor, veja o exemplo abaixo:

#!/bin/sh
#
# Author: Your Name <[email protected]>
#
### BEGIN INIT INFO
# Provides:       Name
# Required-Start: $local_fs $remote_fs
# Required-Stop:  $local_fs $remote_fs
# Should-Start:   $syslog
# Should-Stop:    $syslog
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Short-Description: Add a description here
### END INIT INFO

# Using LSB functions:
. /lib/lsb/init-functions

set -e

NAME="NAME"
DAEMON=/opt/app/app.js
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Function that starts the daemon/service.
d_start() {
        log_daemon_msg "Starting" "$NAME"
        start-stop-daemon --start --quiet --background --pidfile $PIDFILE --make-pidfile --startas $DAEMON
        log_end_msg $?
}

# Function that stops the daemon/service.                                         
d_stop() {                                                                        
        log_daemon_msg ":: stopping" "$NAME"                                      
        start-stop-daemon --stop --pidfile $PIDFILE --retry 10                    
        log_end_msg $?                                                            
}                                                                                 

# Function that sends a SIGHUP to the daemon/service.                             
case "$1" in                                                                      
  start|stop)                                                                     
        d_${1}                                                                    
        ;;                                                                        
  restart|reload|force-reload)                                                    
        d_stop                                                                    
        sleep 1                                                                   
        d_start                                                                   
        ;;                                                                        
  status)                                                                         
        status_of_proc "$NAME" "$DAEMON" && exit 0 || exit $?                     
        ;;                                                                     
  *)                                                                           
        echo "Usage: $SCRIPTNAME {start|stop|restart|status}"                  
        exit 3                                                                 
        ;;                                                                     
esac                                                                           

exit 0
    
por 04.05.2018 / 16:39