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.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次の 3 つのコマンドのいずれかで呼び出します。

string result = ExecScript("sudo /etc/rc.d/init.d/tomcat5_3 status");

status コマンドは問題なく動作します。常に文字列を返すので、それを解析して Tomcat の正しいステータスを取得できます。

しかし、停止/開始しようとすると、結果は次のようになります。

最初のメッセージ

Stopping tomcat:            

数秒後のメッセージの 2 番目の部分

Stopping tomcat:            [OK]

そして問題が発生します。もちろん、プログラムはこれらのメッセージを表示せず、ハングするだけで、出力ウィンドウはコード259を返します。これは、私が知っているように、「コマンドがまだ進行中です」を意味します。

実際、停止/開始操作は正常に終了します。しかし、私のアプリはそれについて私に通知しません。エラーなし、例外なし、ハング...

ヒント、アドバイスはありますか?

4

0 に答える 0