将Minecraft服务器使用PM2进行守护进程化
运动环境
- ubuntu16.04
PM2是什么东西?
-
- Nodejsアプリを動かすための仕組みの一つ
-
- インスタンスと一緒にNodejsアプリを自動起動(デーモン化)したり、pm2コマンドから停止したりできる
-
- Nodejsはシングルスレッドだけど、pm2で起動する事でCPUのクラスタリングもできる
-
- Nodejsアプリのログの保存も勝手にやってくれる
-
- アプリが落ちたら10回までは再起動してくれる
- 似た用途の物では forever というのがある
因为我个人曾经有过进行Nodejs Web服务器负载测试的经验,
这两个特性——保存日志和自动重新启动——相当地帮了我大忙。
在使用PM2进行自动启动的优点是什么?
-
- pm2から起動、停止する事が出来る(もしcrontabでやってたら一々面倒です)
- コマンドから起動できるものは大体なんでもこの手順で自動起動出来る
自动启动程序
安装npm
npm是Nodejs的软件包管理器。
安装Nodejs和npm。
$ apt update
$ apt install nodejs npm
安装pm2
$ npm install -g pm2
使用Node.js编写一个执行外部命令的程序。
$ cd [server.jarのあるディレクトリ]
$ echo 'console.log(require('child_process').execSync('java -jar server.jar').toString())' > main.js
在下午4点执行
请务必先进入server.jar所在的目录,然后执行以下操作,否则会在“/”路径下创建世界数据。
$ pm2 start main.js –name=”minecraftserver”
确认已经启动
$ pm2 list
保存6点下午2的状态
$ pm2 startup
$ pm2 save
执行pm2 save命令后,会在实例启动时帮助您恢复当时的启动状态。您可以尝试重新启动并等待一段时间后检查是否可以连接到服务器。
要停止
当您想要输入服务器命令时,您可能不想使用pm2进行启动。
停下来的时候
$ pm2 stop minecraftserver
在想要的情况下,请在重新启动后不要自动启动。
$ pm2 delete minecraftserver
$ pm2 save
利用以上的步骤,您可以实现自动启动或管理除Minecraft之外的各种程序的启动/停止。