ログサーバーのログをテールしてウィンドウに表示していますが、アプリケーションを閉じるとリモートテールプロセスはサーバー上でアクティブのままです。QProcessで開始されたネストされたリモートプロセスはゾンビのままです
繰り返すと、膨大な量のゾンビプロセスが発生します。
process_log_watcher_->start(QString(
"ssh -t %1 \"tail -F -n 0 /var/log/logfile.log\"").arg(log_server_));
コンソールでは、ssh -t
オプションは端末の終了を処理します。私はその行動を再現したい。
デストラクタで私はprocess_log_watcher_->close();
と呼んでいますが、それは役に立たないようです。 ssh -t server "tail -F -n 0 /var/log/logfile.log"
が起動したコンソールウィンドウを閉じるとは動作が異なります。
QProcessがsshセッションを終了しないことはありますか?