【问题标题】:Linux: What should I use to run terminal programs based on a calendar system?Linux:我应该使用什么来运行基于日历系统的终端程序?
【发布时间】:2011-10-13 12:10:30
【问题描述】:

对不起,这个非常模棱两可的问题,我真的不知道如何措辞,但希望我可以在这里为您提供更多详细信息。

我正在开发一个项目,用户可以登录网站并预订服务器以在特定时间内运行游戏。当时间到时,服务器停止运行,服务器上的玩家被踢出。网站部分不是问题,我在 PHP 中执行此操作,一切正常。它有一个日历系统来预订服务器,并且可以根据用户的需要生成配置文件。

我的问题是我应该使用什么来在 linux 机器上使用这些配置文件在正确的时间运行特定的游戏服务器?我已经使用 bash 脚本和 cron 来完成这项工作,但它看起来很不优雅。它实际上使用 FTP 连接到网站,因此它可以下载所有必要的配置文件并将它们放在该游戏和时间的文件夹中。我想知道是否有更好的方法来做到这一点。也许用 C 写一个程序,但我不知道该怎么做。

(我不是要求有人牵着我的手告诉我“在这里写这段代码”,只是一些解决这个问题的更好方法的想法)

非常感谢大家!

编辑:网络服务器是完全不同的机器。我理论上希望拥有多个游戏服务器,每个游戏服务器都“连接”(目前是 FTP)到网络服务器,获取一个文件,说明它在特定时间必须做什么并下载任何相关文件然后断开连接。

【问题讨论】:

    标签: linux cron terminal remote-server


    【解决方案1】:

    我认为at 比 cron 更适合运行一次性作业。

    为了更好地下载文件等,您应该提供更多关于您的设置的详细信息(例如,网站和游戏服务器,它们是在同一台机器上吗?还是在同一网络上?等等。

    【讨论】:

    • 网络服务器是完全不同的机器。我理论上希望拥有多个游戏服务器,每个游戏服务器都“连接”(目前是 FTP)到网络服务器,获取一个文件,说明它在特定时间必须做什么并下载任何相关文件然后断开连接。
    • 我只是查看了“at”,我确实认为这是在特定时间运行的更好方式。虽然我可以暂时使用变量吗?它需要每隔 5 分钟检查一次日历是否有更新,但它可能随时运行服务器。
    • 好吧,你可以让它在某个时间运行。但是,您可以解析 atq 命令的输出并将其删除,然后在不同时间重新插入。
    • 如果您需要更多地控制资源,at 页面似乎引用了nqs
    【解决方案2】:

    您需要一个分布式任务调度程序。有了它,您可以:

    1. 安排命令“X”在特定时间运行。
    2. 指定机器(或要求它从可用机器池中挑选一台机器)

    当用户选择游戏服务器和时间时,网络服务器会通过命令行或网络服务向这个调度器发送请求。

    你可以看看:http://www.acelet.com/super/SuperWatchdog/index.html

    编辑:

    另一种选择:http://jobscheduler.sourceforge.net/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2017-02-16
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多