gpt4 book ai didi

node.js - BASH - 为什么我的 NodeJS 服务器脚本崩溃了?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:42 37 4
gpt4 key购买 nike

运行 CentOS(Linux 信号服务器 3.10.0-123.8.1.el7.x86_64)。当我使用 SSH 登录服务器然后手动执行以下行时,它可以正常工作,但是当我退出与服务器的 SSH 连接时崩溃。

$ node /var/www/html/signal-server/avi.js &

当我没有通过 SSH 手动登录时,这个机器人也无法让服务器运行:

#!/bin/bash
while :
do
# 1
avi=$(pgrep -f "avi.js")
if [[ "$avi" ]]; then
log1="1 - running avi.js $1 $2"
else
log1="1 - re-launch avi.js $1 $2"
ps aux | grep "avi.js" | awk '{print $2}' | xargs kill
sleep 1
# same if nohup also used
node /var/www/html/signal-server/avi.js &

fi

tt=$(date +"%Y-%m-%d %T")
echo "$tt" "$log1"

sleep 2
done

我怎样才能让它永远运行呢? (我还有其他服务,它们工作正常,只有这个服务在我从 SSH session 注销时总是崩溃)

最佳答案

nohup 会做你想做的事

nohup Node /var/www/html/signal-server/avi.js &

您真的应该为您的服务编写一个 systemd 脚本,然后如果您的服务器重新启动,您的服务将再次启动。

这是一个粗略的想法,这样的脚本可能是什么样子

[Service]
ExecStart=node /var/www/html/signal-server/avi.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=node-avi
User=some-user
Group=some-group
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

花一点时间阅读 systemd 文档

关于node.js - BASH - 为什么我的 NodeJS 服务器脚本崩溃了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38954515/

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