你可以使用以下代码片段来实现该功能:
#include <QCoreApplication>
#include <QProcess>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 检查程序是否已经启动
QProcess checkProcess;
checkProcess.start("pgrep caemw"); // 使用pgrep命令检查进程是否存在
checkProcess.waitForFinished();
QByteArray output = checkProcess.readAllStandardOutput();
if (output.isEmpty()) {
// 程序未启动,执行启动命令
QString programPath = "/xxx/xx/x64/caemw";
QStringList arguments;
arguments << "-e";
QProcess startProcess;
startProcess.start(programPath, arguments);
startProcess.waitForStarted();
if (startProcess.error() != QProcess::UnknownError) {
qDebug() << "Failed to start caemw: " << startProcess.errorString();
return 1;
}
qDebug() << "caemw started successfully!";
} else {
qDebug() << "caemw is already running.";
}
return a.exec();
}
请确保在编译和运行之前将路径 /xxx/xx/x64/caemw
替换为实际的程序路径。此代码将使用 pgrep caemw
命令检查进程是否已经启动,如果没有找到相关进程,则会执行 ./caemw -e
启动程序。
内容由零声教学AI助手提供,问题来源于学员提问