【问题标题】:C# console. how to restart an application every 10 minutes?C# 控制台。如何每 10 分钟重启一次应用程序?
【发布时间】:2015-07-10 10:40:28
【问题描述】:

我有一个需要每 10 分钟重新启动一次的 C# 控制台应用程序。到目前为止,我一直在使用批处理脚本来执行此操作,但现在我需要使用 mono 在 linux 上运行此应用程序。关于如何做到这一点的任何提示? 我不想为此创建一个 bash 脚本。也许在我的 C# 代码中。 我已经尝试过线程、计时器等等。

【问题讨论】:

  • 创建一个 cron 作业以每十分钟运行一次。
  • cron 工作是您所需要的。但是您是否还需要终止应用程序的现有实例?
  • */10 * * * * ./bot.sh 我将此行添加到 crontab 中。看起来它不起作用。
  • 另一种方法是保持应用程序运行:在无限循环中插入 System.Threading.Thread.Sleep(10*600*1000)。
  • 继续运行?我想在 10 分钟后重新启动我的应用程序。它应该在 10 分钟后停止并重新启动。

标签: c# bash mono console console-application


【解决方案1】:

您可以使用 cron 作业来安排它每 10 分钟运行一次,例如:

http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

【讨论】:

    【解决方案2】:

    您不想使用 Bash 脚本,但我认为这是一个很好且快速的解决方案。

    在您的 crontab 中添加类似:

    */10 * * * * /script/pathname.sh 
    

    在一般的 crontab 中开启:

    */10 * * * * username /script/pathname.sh 
    

    在脚本中,这样写:

    #!/bin/bash
    killall myapp
    /usr/bin/myapp
    

    别忘了 sha bang,别忘了让它可执行:

    chmod u+x /usr/bin/myapp
    

    【讨论】:

      【解决方案3】:

      您启动应用的新副本并关闭当前应用。

      string myApp = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
          System.Diagnostics.Process.Start(myApp);
          Environment.Exit(0);
      

      【讨论】:

      • 但是,如何在 10 分钟后安排呢?
      猜你喜欢
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      相关资源
      最近更新 更多