Завершение процессов порожденных скриптом, запущенным через QProcess

Если из консоли запустить скрипт, например:

#!/bin/sh
#launch_script
some_app_with_eventloop
killall some_app_with_eventloop

то при закрытии окна терминала или нажатии Ctrl+C в процессе выполнения, some_app_with_eventloop будет завершена.

Я пытаюсь добиться такого же поведения при запуске подобного скрипта через QProcess.

void onstart()
{
  m_process = new QProcess();
  m_process->setProgram(launch_script);
  m_process->start()
}

void onstop()
{
  m_process->write("^C");
  m_process->write("exit");
  m_process->waitForBytesWritten();
  m_process->terminate();
  QTimer::singleshot(1000, m_process, QProcess::deleteLater);
}

Но процесс sh все время завершается, оставив some_app_with_eventloop работающей. Как добиться такой же реакции, как нажатие Ctrl+C или закрытие окна терминала?


Ответы (0 шт):