У меня есть запуск сценария BASH (блокировка QProcess) в QThread (на C++). Этот сценарий BASH обрабатывает множество файлов и может работать в течение 1/2 часа.
Если пользователь хочет закрыть мою программу, мне нужно убить мой BASH-скрипт. Но как? QThread :: Quit будет ждать завершения программы BASH перед обработкой сигналов, в документации QThread :: Terminate говорится, что он МОЖЕТ немедленно убить поток.
Мне нужен эквивалент «kill -9 myscript». Есть ли правильный способ Qt сделать это?





waitForXxx.QProcess::kill, чтобы убить процесс.QProcess, чтобы получать уведомления, когда процесс меняет состояние, например закончен.I want the equivalent of 'kill -9 myscript'. Is there a proper Qt way to do this ?
из документа Qt http://doc.qt.io/qt-5/qprocess.html#kill:
void QProcess::kill()
Kills the current process, causing it to exit immediately.
On Windows, kill() uses TerminateProcess, and on Unix and macOS, the SIGKILL signal is sent to the process.
Трудно сказать, не видя кода, но я подозреваю, что вам лучше запустить сценарий
bashчерез неблокирующийQProcess(используя сигналы / слоты для отслеживания изменений состояния), а затем использоватьQProcess::terminateилиQProcess::kill, если вам нужно завершить работу. процесс принудительно. Я думаю, чтоQThreadздесь только мешает.