【问题标题】:Nested remote process started by QProcess remains as zombie由 QProcess 启动的嵌套远程进程仍然是僵尸
【发布时间】:2017-05-03 17:18:37
【问题描述】:

我正在跟踪我的日志服务器上的日志以在窗口中显示它们中的任何一个,但是当我关闭我的应用程序时,远程跟踪进程在服务器上仍然处于活动状态。

重复会产生大量的僵尸进程。

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 会话?

【问题讨论】:

    标签: c++ linux ssh qt4


    【解决方案1】:

    ssh -t server bash -c \"tail -F -n 0 /var/log/logfile.log\" 解决了这个问题。

    这意味着ssh连接终止没有正确转发到尾部,而是正确转发到远程bash,然后根据需要终止了尾部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 2019-11-17
      • 2011-03-14
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多