再问服务重启问题,满分

SS_ 2005-01-24 12:01:35
前一问地址:http://community.csdn.net/Expert/topic/3743/3743487.xml?temp=.218075

如 wangk(倒之) 诸位 的指教使用

//停止"Apache Tomcat"服务
net stop "Apache Tomcat"

//启动"Apache Tomcat"服务
Net start "Apache Tomcat"


我用一个bat文件 里面内容为:
net stop "Apache Tomcat"
net start "Apache Tomcat"

这样可以实现重启“Apache Tomcat”服务,但有这样的情况出现:

C:\>net stop "Apache Tomcat"
Apache Tomcat 服务正在停止.....
Apache Tomcat 服务无法停止。

C:\>net start "Apache Tomcat"
请求的服务已经启动。

这个问题的结果是:Apache Tomcat 停止,没有启动
原因是:第一句net stop "Apache Tomcat" 确实执行了停止的命令,但有时候这个服务停止的时间很长(有可能2、3分钟),服务还没完全停止立马就显示出“Apache Tomcat 服务无法停止。”,接着运行第二句net start "Apache Tomcat",但现在服务还在继续停止,可能就相当于“请求的服务已经启动。”这样的状态了。所以最终结果就是服务停止。

这样的话,怎么办?
...全文
163 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SS_ 2005-01-27
  • 打赏
  • 举报
回复
唉,最后的结果 我用了类似楼上的方法,用两次计划任务。

很感谢 wangk(倒之) 的两次热情帮忙,谢谢诸位的积极帮助,谢谢!
wangk 2005-01-26
  • 打赏
  • 举报
回复
大不了用两次计划任务一个停止服务,一个开启服务,两个之间时间相差3分钟。不就好了。
wangk 2005-01-26
  • 打赏
  • 举报
回复
Apache Tomcat的bin目录下面好像有一个重启服务的工具,你找下。
直接用它好了。
funsuzhou 2005-01-25
  • 打赏
  • 举报
回复
楼主,搞定没?^_^
SS_ 2005-01-24
  • 打赏
  • 举报
回复
应该不是“服务本身出错,比如文件无法访问等”这样的问题,
个人感觉运行net stop "Apache Tomcat",出现“Apache Tomcat 服务正在停止....”
似乎是dos等待的时间太短,所以就有“Apache Tomcat 服务无法停止。”

正如通过“控制面板->管理工具->服务”工具,选中Apache Tomcat 服务,单击 “重新启动服务”按钮,先是运行停止,再是启动,速度很快。但启动完毕后立即再次单击 “重新启动服务”按钮,这时候停止服务的进度会非常慢(2-3分钟),具体什么原因不知道,但是停止后肯定能继续运行启动服务。

以上是我观察的现象,如何解决还有待大家给出方法。
celerylhl 2005-01-24
  • 打赏
  • 举报
回复
服务本身出错,比如文件无法访问等
oyljerry 2005-01-24
  • 打赏
  • 举报
回复
嗯,控制一下时间间隔
funsuzhou 2005-01-24
  • 打赏
  • 举报
回复
--通过程序实现比较方便:
--以C#为例:
窗体上添加一个timer控件timer1,一个按钮控件button1

顶端添加:
using System.Diagnostics ;

窗体类里顶端增加代码:
int startValue=0;

private void button1_Click(object sender, System.EventArgs e)
{
ProcessStartInfo psi = new ProcessStartInfo();
Process proc = new Process();
psi.FileName = "net";
psi.Arguments = "stop \"Apache Tomcat\"";
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
proc = Process.Start(psi);
timer1.Interval =300000;//1000为1秒,可自己设定,300000为5分钟
timer1.Enabled =true;
}

private void timer1_Tick(object sender, System.EventArgs e)
{
startValue++;
if(startValue==1)
{
ProcessStartInfo psi2 = new ProcessStartInfo();
Process proc2 = new Process();
psi2.FileName = "net";
psi2.Arguments = "start \"Apache Tomcat\"";
psi2.WindowStyle = ProcessWindowStyle.Hidden;
psi2.CreateNoWindow = true;
psi2.UseShellExecute = false;
proc2 = Process.Start(psi2);
}
}

6,868

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧