编写 bash 或其他脚本以重新启动另一个脚本



我正在为我的儿子运行一个我的世界服务器,我是我的世界服务器的新手,无论如何它似乎一直在死去,因为它跟不上? 好的,所以它是一个虚拟机,我会在某个时候为它分配更多资源,但我的问题如下

我通过脚本启动服务器加载脚本内部 bukkit.sh

#!/bin/bash
java -Xmx1024M -jar /minecraftserver/bukkitserver/craftbukkit-1.7.1.jar -o true

现在在白天或晚上的某个时候它会死,因为它跟不上,有没有办法让我让其他一些脚本与它一起运行并看到进程已经死亡并再次运行该脚本以启动服务器。

当我运行 top 时,我可以看到 Java 在使用所有资源时处于顶部,所以我 100% 这就是 Minecraft Java。PID 是否在每次加载时都保持不变?

如果有人能帮忙,那就太好了......

我认为java进程一旦启动就会留在前台?有什么理由你不能只做:

while :
do
  java -Xmx1024M -jar /minecraftserver/bukkitserver/craftbukkit-1.7.1.jar -o true
done

然后,每当 java 退出时,脚本都会简单地重新启动它。

编辑:你可以创建一个脚本,让我们称之为 craftbukkit.sh

确保使用以下方法执行它: chmod +x craftbukkit.sh

然后在脚本中编写:

#!/bin/sh
ps auxw | grep craftbukkit-1.7.1.jar| grep -v grep > /dev/null
if [ $? != 0 ]
then
        /path/to/your/bukkit.sh
fi

/path/to/your/bukkit.sh更改为 minecraft 启动脚本所在的任何位置。

然后你需要把这个脚本添加到你的crontab,这是通过进入crontab编辑器来完成的:crontab -e

如果希望脚本每 5 分钟运行一次,请添加如下所示的行:

*/5 * * * * /path/to/craftbukkit.sh

请注意,您必须更改/path/to 以指向创建 craftbukkit.sh 脚本的位置。

相关内容

  • 没有找到相关文章

最新更新