The nested remote process launched by QProcess remains a zombie

I close the logs on my log server to display them in a window, however, when I close the application, the remote tail process remains active on the server.

Repetition creates a huge number of zombie processes.

process_log_watcher_->start(QString(
      "ssh -t %1 \"tail -F -n 0 /var/log/logfile.log\"").arg(log_server_));

In the console, the option ssh -tprocesses the terminal output; I want to reproduce this behavior.

In the destructor, I call process_log_watcher_->close();, but it doesn't seem to help. It behaves differently than closing the console window at startup ssh -t server "tail -F -n 0 /var/log/logfile.log".

Could it be that QProcess does not end the ssh session?

+6
source share
1 answer

ssh -t server bash -c \"tail -F -n 0 /var/log/logfile.log\" solves the problem.

, ssh , bash, .

+3

Source: https://habr.com/ru/post/1016810/


All Articles