@nikko1991 said in Can't kill QProcess in overriden closeEvent():

I believe shutting down ROS from Qt/other program is slower than from terminal

I don't claim to understand what you are saying in your post, and I probably won't understand even if you try to explain more! But I do not know what you could mean by this sentence. The "terminal" (i.e. a "shell") simply is "from other program". There is no difference between a shell and any other program under Linux, and if you can do something from a shell you can do it from a program you write.

As a separate matter, I wouldn't use the blocking QProcess::waitFor...() methods anyway, at least not in the case of issues with the program spawned. There is no need to, as there are the asynchronous signals from QProcess available to you, which is how the waitFor()s are implemented anyway. So if you are saying these are causing you problems, don't use them.