signals sent by qtcreator on "stop"
linux, qt, qt-creator, signals
Solution
Digging into QtCreator's code, I can see that QtCreator uses a QProcess internally to launch your app. The red "stop" button is connected to `ApplicationLauncher::stop()`, which terminates your process in one of two ways depending if it's a GUI app or a console app, but in both cases, the result end up to be the same on Linux.
For a GUI app, `ApplicationLauncher` calls `QProcess::terminate()`, which in turn sends a SIGTERM (on Linux) signal to your daemon. It then waits (with `waitForFinished()`) for 1 second, and if the daemon hasn't quit by then, it calls `QProcess::kill()`, sending `SIGKILL`.
For a console app, `ApplicationLauncher` delegates the termination to the `ConsoleProcess` utility class. On Linux, `ConsoleProcess::stop()` will act similar to `ApplicationLauncher` for a GUI app, which is first sending `SIGTERM`, then waiting for 1 second, and sending `SIGKILL` if it hasn't terminated yet.
You will find the relevant code from QtCreator here:
- GUI app termination
- Console app termination (on Linux)
- Console app termination (on Windows)
Problem
I am working on linux and I realized that my application was leaving behind daemon processes when I close it with the "Stop" button on Qt creator IDE. I want to handle these cases so the application close the same way as when I close the main window. To write the handlers, I need to know which signals it corresponds to.