Como está executando um script de inicialização diferente para escrever os comandos manualmente?

0

Este é o script de inicialização do nosso servidor Node.JS para RedHat EL 6.

#!/bin/sh
# chkconfig:   345 01 01
# description: DeepFlow startup script

case $1 in
        start)
            echo "Starting DeepFlow"
            cd /home/admin/Desktop/DeepFlow/server
            ./bin/node js/server.js
            ;;
        stop)
            echo "Stopping DeepFlow"
            killall node
            ;;
esac

Por algum motivo, quando eu digito manualmente

            cd /home/admin/Desktop/DeepFlow/server
            ./bin/node js/server.js

tudo funciona bem, mas quando eu faço service DeepFlow start eu recebo um erro Node.JS:

Starting DeepFlow

events.js:71
        throw arguments[1]; // Unhandled 'error' event
                       ^
Error: failed to connect to [localhost:27017]

Qual é a diferença entre digitar manualmente as linhas de script em um terminal e executar o script com service ?

    
por Randomblue 18.02.2013 / 10:44

1 resposta

-1

Tente usar nomes de caminhos completos.

NODE_BIN="/home/admin/Desktop/DeepFlow/server/bin/node"
SERVER_JS="/home/admin/Desktop/DeepFlow/server/js/server.js"
echo "Starting DeepFlow"
$NODE_BIN $SERVER_JS
;;

Além disso, seria bom verificar qual usuário está iniciando o servidor. Se ele for executado na inicialização, o proprietário será 'root'.

    
por 18.02.2013 / 10:51