(私はLinuxやWineプロではありません...彼らはIT担当者によって設定されています...私はただのJavaユーザーです) 私は作業していますLinux上で動作するJavaアプリケーションです。これは同じことをするいくつかのスレッド、つまりプロセスの生成(java.lang.Process)、いくつかのLinux、ワインを通していくつかのWindowsを生成します。私のスレッドの中には、ワインの呼び出し中に無期限にハングするものがあります。コマンドプロンプトからワインを実行しているプロセスを終了させる
私は同じlinux/windowsアプリケーションを呼び出すいくつかのスレッドを持っているので、ps出力をgrepにgrepすることはできません。
グーグルやリフレクションを通して、プロセスからpidを得ることはできましたが、psを使ったLinuxのpidには対応していないので、私はそれがwineで動くpidだと思っています。
(最後に質問...) pidを参照しているワインで実行中のプロセスを強制終了する方法はありますか?
ご回答ありがとうございます。 あなたの提案を試してみると、pidは認識されません。 -bash-3.2 $ kill -3 5245 -bash:kill:(5245) - そのようなプロセスはありません これは私のOPのコメントと一貫していますが、プロセスからPIDを取得できますが、 psを使用しているLinuxのpidに対応していません。別の見方をすると、間違っているかもしれないと思います。 おそらくもっと詳細が必要です... プロセスが最初に起動した後、バッファを使用してプロセスの出力ストリームを転送する別のスレッドを生成します。 ... – jgreen
プロセスが終了したことを知らせる結果を返したら、ストリーム転送を行っているスレッドが終了するのを待ちます。 ストリーム転送を行っているスレッドは、実際にハングが発生した場所(発生した場合)です。私は何とかプロセス出力ストリームは、(バイト数を読み取るために-1を返すことによって)処理を完了しなければならないことをバッファに知らせないので、読み取り操作でブロックされると思います。 これは実際に私が殺したいものですが、プロセスpidはプロセスが完了したために何かを指していない可能性があります。 ... – jgreen
私はハングしたストリーム転送がプロセスをまだアクティブにさせると仮定しました。 もし私があるなら、私はある種のJavaソリューションに戻ってきたと思います。 – jgreen