在Windows应该可以这样做。自己编写另外一个用不退出的程序,这个程序的主要任务是睡觉,然后每隔两个小时醒来一下,执行两条命令:
net stop XXX
net start XXX
在Windows的服务管理器里可以查到resin web server的服务名称,然后代替上面的XXX就可以了。用C语言可以这样写程序:
#include <process.h>
int main()
{
    while(1)
    {
        Sleep(2 * 60 * 60 * 1000);
        System("net stop XXX"); 
        System("net start XXX"); 
    }
    return 0;
}Java当然也可以写,偶不会,你自己写吧。

解决方案 »

  1.   

    哦,resin web server应该可以以Windows服务的方式运行吧?
    如果不是,你只能通过程序名找到进程编号,然后杀掉进程再重新启动程序了。
      

  2.   

    哦,对了,上面的程序还要:
    #include <windows.h>
    使用VC编译。
      

  3.   

    resin没用过,如果是tomcat5.5或weblogic8.1,除了启动的bat或cmd文件,同时还有停止用的bat和cmd。在windows的任务计划中进行设置,每隔两个小时先停止服务器,1分钟以后启动服务器。这样应该就没有问题了。
    你用resin,可以参考上边的办法试一下。ps:做web开发的同志应该满心期望服务器能够稳定持续的运行下去,为何楼主还要这样频繁的重启服务器呢?
      

  4.   

    class StartServer extends Thread
    {
        public void run()
        {
           while(true)
           {
              sleep(2*60*60*1000);
              Process p = Runtime.getRuntime().exec("服务器关闭命令");
              Process p = Runtime.getRuntime().exec("服务器重开命令");
           
           }
        }
    }再用一个类来start这个线程,不知道可不可以,兄弟自己试一下!
      

  5.   

    import java.util.*;public class Tasker {
      public Tasker() {
      }
      
      static Timer timer = null;  public void run() {
        timer = new Timer() ;
        timer.schedule(new AddTask(), 1, 7200000); // 7200000 代表两小时
      }  public void cancel() {
        if(isRuning) {
          timer.cancel();
          timer = null ;
        } 
      }  public boolean isRuning(){
        return timer != null ;
      }  class AddTask
          extends TimerTask {
        public void run() {
          try {
              Process p = Runtime.getRuntime().exec("服务器关闭命令");
              Process p = Runtime.getRuntime().exec("服务器重开命令");
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      }}
      

  6.   

    zmt_cn(细雨微凉) 写的很好!改一下就可以了!
    把resin放在后台就行!
    不会可留言!
      

  7.   

    to     zmt_cn(细雨微凉) :
    if(isRuning) {
          timer.cancel();
          timer = null ;
    改成:
    if(isRuning()) {
          timer.cancel();
          timer = null ;