linux - 作为守护进程运行 node.js

  显示原文与译文双语对照的内容
0 0

我在启动时一直在运行 node.js 服务器。 用这个scipt很好。 永远让服务器运行。 但是,当我运行永久列表时,我在这里看不到服务器 ! 我知道它正在运行,但它从未在这个列表中。 看起来系统正在运行两个永久的实例。


root@ddd [/etc/init.d]# chkconfig --list |grep node1
node1 0:off 1:off 2:on 3:on 4:on 5:on 6:off

这是脚本:/etc/init. d/node1


NAME=node1
NODE_BIN_DIR=/usr/local/bin
NODE_PATH=/usr/local/lib/node_modules
APPLICATION_DIRECTORY=/home/user1/www
APPLICATION_START=node1.js
PIDFILE=/var/run/node1.pid
LOGFILE=/var/log/node1.log

PATH=$NODE_BIN_DIR:$PATH
export NODE_PATH=$NODE_PATH

start() {
 echo"Starting $NAME"
 forever --pidFile $PIDFILE --sourceDir $APPLICATION_DIRECTORY 
 -a -l $LOGFILE --minUptime 5000 --spinSleepTime 2000 
 start $APPLICATION_START &
 RETVAL=$?
}

stop() {
 if [ -f $PIDFILE ]; then
 echo"Shutting down $NAME"
 forever stop $APPLICATION_START
 rm -f $PIDFILE
 RETVAL=$?
 else
 echo"$NAME is not running."
 RETVAL=0
 fi
}

restart() {
 echo"Restarting $NAME"
 stop
 start
}

status() {
 echo"Status for $NAME:"
 forever list
 RETVAL=$?
}

case"$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 status)
 status
 ;;
 restart)
 restart
 ;;
 *)
 echo"Usage: {start|stop|status|restart}"
 exit 1
 ;;
esac
exit $RETVAL

时间: 原作者:

0 0

你也可以在用户的crontab中永久放置,使用 @reboot 参数,以便在启动时启动。

就像这样:


@reboot/usr/bin/forever start/path/to/script.js

( 这是假设永远在 /usr/bin/ 中;它也可以能是 /usr/local/bin/的某个地方。)

0 0

问题是,永远把所有的文件都保存在 ~/.forever. 中 上面的脚本作为 root 运行。 不确定它存放在哪里,但我做"永久列表"的工作。

...