Linux Screen Kill 挑战

Linux Screen Kill 挑战

这是对所有科学家的挑战。这是我的问题:

我有一台运行 2 个脚本的 Linux 机器。第一个脚本运行影响第二个脚本的命令。第二个脚本循环运行程序。

例如脚本 1 - 停止脚本 2 脚本 1 - 启动脚本 2 这是服务脚本2启动/服务脚本2停止的形式。等等。 *请注意,服务脚本2启动使用第二个脚本创建一个新的分离屏幕。

第二个脚本循环运行如下:

  1. 运行更新脚本并等待
  2. 运行第一个游戏并等待
  3. 运行第二场游戏并等待

游戏通常在自己的屏幕上运行,因此当它们被杀死时,主脚本不会崩溃。因此,如果游戏崩溃,Script2 不会崩溃。

问题就在这里。我需要这样做,当我想停止服务器时,它必须先安全地终止游戏,例如留出时间让它关闭。然后关闭 Script2 屏幕并防止循环再次启动游戏。

有什么建议么?

答案1

您需要在第二个脚本中放置一个条件语句,以在循环之前检查某种类型的标志或信号。如果存在该标志或信号,您的脚本应该会干净地退出。

一个简单的这样的标志/信号是检查文件是否存在,例如/var/run/SCRIPTstop或类似文件。当您想要停止脚本时,touch SCRIPTstop只需要一个。

根据您的脚本语言,您可能能够向其发送 UNIX 信号,使用kill:即killall -SIGUSR1 $SCRIPTNAME,等等。

您的第二个脚本应该确保在初始化时删除文件,并且在干净退出之前也最好这样做。

相关内容