如何让托管Minecraft账号的Node.js脚本崩溃后自动重启?
自动重启Node.js脚本的可行方案
针对你的Minecraft挂机脚本崩溃后需要手动重启的问题,给你几个实用的方案:
方案1:使用PM2(最推荐)
PM2是Node.js生态里最常用的进程管理器,自带崩溃自动重启、日志管理等功能,操作简单:
- 全局安装PM2:
npm install pm2 -g - 进入你的脚本目录,直接用PM2启动脚本:
pm2 start your-script.js(如果你的package.json里有start命令,也可以用pm2 start npm -- start) - 验证自动重启:手动杀掉进程或者让脚本崩溃,PM2会立刻重启它
- 额外配置:如果需要开机自启,可以执行
pm2 startup,按提示完成配置
方案2:使用Forever
Forever也是专门用来保持Node脚本持续运行的工具:
- 全局安装:
npm install forever -g - 启动脚本:
forever start your-script.js - 查看运行状态:
forever list - 重启脚本(如果需要手动操作):
forever restart your-script.js
方案3:用Shell脚本循环执行(无需额外工具)
如果不想装第三方包,写个简单的shell脚本就能实现循环重启:
- 在脚本目录创建一个
restart.sh文件,内容如下:
#!/bin/bash while true; do npm start echo "脚本崩溃,5秒后重启..." sleep 5 done
- 给脚本加执行权限:
chmod +x restart.sh - 运行脚本:
./restart.sh
这个脚本会在npm start退出后(不管是崩溃还是正常结束),等待5秒自动重新启动
关于你之前的命令无效的原因
你用的npm start supervisor algasnobrakes是错误的用法:npm start是执行package.json里scripts字段定义的start命令,后面加的参数不会被正确传递给supervisor。正确的做法是先全局安装supervisor:npm install supervisor -g,然后直接用supervisor your-script.js启动,它会监听文件变化并重启,但默认也会在脚本崩溃时重启。如果还是不行,可能是你的脚本崩溃时退出码不是常规错误码,这时候PM2或Forever的兼容性更好。
内容的提问来源于stack exchange,提问作者Coolpilot
相关产品推荐
相关产品推荐

