Как было сказано, вы можете сделать это для Windows относительно просто, используя win api: Перечисление всех процессов && Завершение процесса
для linux вы можете попробовать запустить что-то вроде "ps -A", используя QProcess и проанализировать его стандартный вывод; что-то вроде этого:
QProcess process;
process.setProcessChannelMode(QProcess::MergedChannels);
process.start("ps", QStringList() << "-A");
if (!process.waitForStarted())
return;
if (!process.waitForFinished())
return;
//qDebug() << process.readAll();
QByteArray output = process.readLine().trimmed();
while (!output.isEmpty())
{
qDebug() << output;
QList<QByteArray> items = output.split(' ');
qDebug() << "pid:" << items.first() << " cmd:" << items.last();
qDebug() << "===============================================";
output = process.readLine().trimmed();
}
это должно вернуть список запущенных процессов, вы можете попробовать разные параметры командной строки для ps , чтобы получить нужные вам данные. Я полагаю, что убить процесс можно так же; запустив kill [pid]
надеюсь, что это даст вам представление о том, как действовать,