我想从ASP.NET控制我的Tomcat服务器的状态。所以基本上我执行以下命令:
sudo /etc/rc.d/init.d/tomcat5_3 status
sudo /etc/rc.d/init.d/tomcat5_3 stop
sudo /etc/rc.d/init.d/tomcat5_3 start
我使用WinSCP .NET程序集中的方法Session.ExecuteCommand
的简单调用,如下所示:
public string ExecScript(string cmd)
{
try
{
CommandExecutionResult result = sessDB.ExecuteCommand(cmd);
result.Check();
return result.Output;
}
catch (Exception e)
{
Console.WriteLine("An error occurred: '{0}'", e);
}
return "";
}
我用以下三个命令之一调用ExecScript
:
string result = ExecScript("sudo /etc/rc.d/init.d/tomcat5_3 status");
status命令正常。总是返回一个字符串,以便我能够解析它并获得Tomcat的正确状态。
但是当我尝试停止/开始时,结果应该如下所示:
第一条消息
Stopping tomcat:
几秒钟后消息的第二部分
Stopping tomcat: [OK]
然后出现问题。程序当然不显示这些消息,它只是挂起,输出窗口返回代码259,据我所知,这意味着“命令仍在进行中”。
实际上停止/启动操作成功完成。但我的应用程序没有通知我。没有错误,没有异常,挂起......
任何提示,建议?