Qprocess启动的嵌套远程过程仍然是僵尸

Nested remote process started by QProcess remains as zombie

本文关键字:过程 仍然是 僵尸 程过程 启动 嵌套 Qprocess      更新时间:2023-10-16

我正在尾随日志服务器上的日志,以在窗口中显示其中任何一个,但是当我关闭应用程序时,远程尾部进程在服务器上保持活跃。

重复产生大量的僵尸过程。

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连接终止未正确地转移到尾巴上,但是将其正确地转发到遥控器,然后根据需要终止尾巴。