这是我的针对 RedHat EL 6 的 Node.JS 网络服务器启动脚本。
#!/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
尝试使用完整路径名。
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”。