gpt4 book ai didi

linux serverscript.sh 为真;做,但 sleep 然后重新检查 true

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:30 25 4
gpt4 key购买 nike

有人向我推荐了这个 ServerRestart.sh 以在出现严重故障时重启我的游戏服务器。

while true; do
LD_LIBRARY_PATH=lib ./Server
done

我用这个“改进”了它以在每次重启时删除日志目录。

while true; do
rm -r /home/_jc3105/logs
LD_LIBRARY_PATH=lib ./Server
done

如果您在运行时删除日志目录,此特定服务器将重新启动。我的改进导致它有时会双重重启所以我认为这是解决方案。

while true; do
sleep 4
rm -r /home/_jc3105/logs
LD_LIBRARY_PATH=lib ./Server
done

但我怀疑它还会有一个新问题。有时它会在一瞬间错误地认为服务器需要重新启动,而实际上不需要重新启动,这在我引入文件夹删除之前不是问题。如果被触发,将导致服务器因删除日志文件而重新启动。

我想使用 script.sh 自动重启游戏服务器。我希望它先等待。然后复查真假?条件。

最佳答案

如果服务器 fork 并继续在后台运行,您的 while 循环将在服务器启动后立即运行另一次迭代。您希望避免杀死运行正常的服务器。

while true; do
if ! pidof Server; then
rm -r /home/_jc3105/logs
LD_LIBRARY_PATH=lib ./Server
fi
sleep 5
done

如果服务器没有在 ps 列表中显示为 Server,显然您需要将参数调整为 pidof .

删除日志后无需 sleep rm 将删除文件,此操作在 rm 完成时完成。我放入的另一个 sleep 只是为了避免在自旋锁中执行此操作(每秒数千次)。

关于linux serverscript.sh 为真;做,但 sleep 然后重新检查 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47527432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com