我在日志服务器上拖尾日志以在窗口中显示任何日志,但是当我关闭我的应用程序时,远程尾部进程在服务器上保持活动状态。
重复会产生大量的僵尸进程。
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会话吗?
答案 0 :(得分:3)
ssh -t server bash -c \"tail -F -n 0 /var/log/logfile.log\"
解决了这个问题。
这意味着ssh连接终止没有正确地转发到尾部,但是它被正确地转发到远程bash,然后根据需要终止尾部。