0

我想从 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.ExecuteCommandWinSCP .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,据我所知,这意味着“命令仍在进行中”。

事实上,停止/启动操作成功完成。但是我的应用程序没有通知我。没有错误,没有异常,挂了……

任何提示,建议?

4

0 回答 0