我想从 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
我使用Session.ExecuteCommand
WinSCP .NET 程序集中的简单方法调用,如下所示:
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");
状态命令工作正常。始终返回一个字符串,以便我能够解析它并获得正确的 Tomcat 状态。
但是当我尝试停止/启动时,结果应该如下所示:
第一条消息
Stopping tomcat:
几秒钟后的第二部分消息
Stopping tomcat: [OK]
然后出现问题。程序当然不会显示这些消息,它只是挂起,输出窗口返回代码 259,据我所知,这意味着“命令仍在进行中”。
事实上,停止/启动操作成功完成。但是我的应用程序没有通知我。没有错误,没有异常,挂了……
任何提示,建议?