如果我从命令行运行 start_test.sh (以root用户身份),它会重启。但是,如果我尝试通过 crontab 运行它,它不会重新启动永久进程,我没有有用的输出,为什么会出现这种情况。
sudo crontab -e
SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin
29 14 * * * /var/local/node_test/start_test.sh
start_test.sh
#!/bin/bash
forever --killSignal=SIGINT restart -c /usr/local/bin/node /var/local/node_test/server.js
/ var / log / syslog at 14:29
Mar 18 14:29:01 app-srv CRON[4394]: (root) CMD (/var/local/node_test/start_test.sh)
答案 0 :(得分:1)
使用pm2工具可以节省一些时间。它可以自动restart a process。
安装pm2:
sudo npm i pm2 -g
在某处创建processes.json
。
[{
"name": "server",
"cwd" : "/var/local/node_test/",
"cron_restart" : "1 0 * * *"
}]
使用以下命令启动流程:
pm2 startOrRestart processes.json
该工具可以为您做更多事情。就像在为进程占用太多内存或设置环境变量时重新启动进程一样。只需浏览readme。