簡體   English   中英

QProcess啟動的嵌套遠程進程仍然是僵屍

[英]Nested remote process started by QProcess remains as zombie

我正在我的日志服務器上拖尾日志以在窗口中顯示它們中的任何一個,但是當我關閉我的應用程序時,遠程尾部進程在服務器上保持活動狀態。

重復會產生大量的僵屍進程。

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會話嗎?

ssh -t server bash -c \\"tail -F -n 0 /var/log/logfile.log\\"解決了這個問題。

這意味着ssh連接終止沒有正確地轉發到尾部,但它被正確地轉發到遠程bash,然后根據需要終止尾部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM