这里不能用直接写到QProcess中start中的command参数。
比如这样的shell:
ps -eo pid,lstart | grep 1808
采用这样的方式:
QProcess p;
p.start("sh", QStringList() << "-c" << "ps -eo pid,lstart | grep 1808");
p.waitForFinished();
这样也是可以的:
QString cmd = "ps -ef | awk '{print $2,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17}'";
QProcess p;
p.start("bash", QStringList() << "-c" << cmd);
即可获取。但看下这条命令:
这个时间的输出对中国人来说很不友好,在此改变下。
date -d "`ps -eo lstart,pid,cmd | grep 1808 | grep -v grep | awk '{print $1,$2,$3,$4,$5}'`" "+%Y-%m-%d:%H:%M:%S"
linux输出如下:
需要的就是这个,在QProcess中这么放就可以了。
#include <QCoreApplication>
#include <QProcess>
#include <QDebug>
#include <QDateTime>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QProcess p;
p.start("sh", QStringList() << "-c" << "date -d \"`ps -eo lstart,pid,cmd |grep 1808|grep -v grep|awk '{print $1,$2,$3,$4,$5}'`\" \"+%Y-%m-%d %H:%M:%S\"");
p.waitForFinished();
QString read = p.readAll().trimmed();
qDebug() << read;
return a.exec();
}
运行截图:
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq78442761/article/details/121925361
内容来源于网络,如有侵权,请联系作者删除!