我需要一种方法来轻松地重新启动/替换bash脚本,而无需手动停止/重新启动该过程。
这是我当前脚本的工作方式:
#!/bin/sh while true do echo "1" java -server -Xms2G -jar game.jar nogui done
基本上,如果游戏停止了,它将自动重新启动,但是该脚本已经加载到内存中,因此,如果我要对其进行修改,则必须手动终止该脚本并重新启动它才能使更改生效。我正在运行至少200个游戏服务器实例,所以手动执行此操作并杀死它,然后再次手动启动每个脚本并不明智。
当游戏服务器停止时,我希望它更新脚本,这是我可能想做的一个例子:
#!/bin/sh while true do echo "1" echo "2" java -server -Xms2G -jar game.jar nogui done
但是,我需要物理上停止脚本并自己重新启动它,以便它添加新的“ echo“ 2”’,我需要一种更简单的方法来替换正在运行的脚本。
脚本本身将在游戏停止时下载更新的脚本(因此它将自动重新开始。
如何使脚本从内存中卸载自身并使用新脚本?
如果我无法做到这一点,您是否可以建议其他替代方法?
调用以下文件myscript.sh。每次游戏停止时,它将自身重新加载到内存中:
myscript.sh
#!/bin/sh java -server -Xms2G -jar game.jar nogui exec /path/to/myscript.sh