gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:15:53 28 4
gpt4 key购买 nike

我配置永远在启动时运行我的 node.js 服务器。使用这个脚本。它工作正常。并永远保持服务器运行。但是,当我永远运行列表时,我在这里看不到我的服务器!我知道它正在运行,但它从未在此列表中。看起来系统正在运行 forever 的两个实例。

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

最佳答案

我不会浪费时间去尝试永远守护进程。

pm2 是新王!永远死了,相信我

以下是如何将 pm2 作为 systemd 或 OS 等效服务运行:

npm install -g pm2

pm2 startup

现在你可以:

service pm2 status|start|stop|restart

还有:

pm2 save

将为您正在运行的 pm2 应用程序拍摄快照,并在重新启动时重新启动它们(不需要 crontab 条目)

完成了!

pm2 比永远好得多。它与 forever 完全相同,但更多!

pm2 list # equivalent to forever list

pm2 start app.js --name "wotever" # equivalent to forever start

pm2 start app.js -i 0 --name "wotever" # load balance your app on all available cores

你看到最后一条命令了吗?你明白这是什么意思吗?我很敬畏!

通常,您的应用在一个核心上运行。不再!我们谈的是速度!

PM2 永远!

关于linux - 永远运行 node.js 作为守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596163/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com