Это мой узел.Скрипт запуска JS веб-сервера для 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

Почему-то, когда я вручную набираю

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

все работает нормально, но когда я service DeepFlow start я получаю Node.Ошибка JS:

Starting DeepFlow

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

В чем разница между ручным вводом строк сценария в терминале и выполнением сценария со service?

1 ответ1

-1

Попробуйте использовать полные пути.

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
;;

Также было бы хорошо проверить, какой пользователь запускает сервер. Если он запускается при запуске, владельцем будет «root».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .