Название: QProcess::kill() не убивает дочерние процессы Отправлено: Павелъ от Февраль 20, 2018, 15:31 Доброго времени суток.
Выполняю bash-скрипт в QProcess() Код: _proc->setProgram("/bin/bash"); При удалении элемента требуется сразу закрыть процесс. Самым быстрым способом является - kill. Но, он убивает только /bin/bash, а nmap продолжает висеть пока не выполнится. Почему так происходит? Если я открою какое-нибудь графическое приложение в терминале и закрою терминал, то графическое приложение тоже закрывается. Что не так с killом в данном случае? Пробовал и так: Код: int PID = _proc->pid(); Тоже ничего не работает. Как удалить полностью процесс, запущенный в QProcess, чтобы и bash, и nmap, и grep, и awk удалились? Можно killall сделать, но вдруг другая программа использует nmap, то тогда и он закроется. Название: Re: QProcess::kill() не убивает дочерние процессы Отправлено: Павелъ от Февраль 20, 2018, 15:38 Почему так происходит? Если я открою какое-нибудь графическое приложение в терминале и закрою терминал, то графическое приложение тоже закрывается. Не обратил внимание, что если убить bash, то графическое приложение не закрывается. Закрывается только при ЗАКРЫТИИ терминала. Значит, при закрытии прописано какое-то правило, которое удаляет всех потомков. Название: Re: QProcess::kill() не убивает дочерние процессы Отправлено: qate от Февраль 21, 2018, 09:25 https://stackoverflow.com/questions/392022/whats-the-best-way-to-send-a-signal-to-all-members-of-a-process-group
|