Qt笔记-QProcess带管道符号运行及获取进程启动时间(Linux)
Posted IT1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt笔记-QProcess带管道符号运行及获取进程启动时间(Linux)相关的知识,希望对你有一定的参考价值。
这里不能用直接写到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();
运行截图:
以上是关于Qt笔记-QProcess带管道符号运行及获取进程启动时间(Linux)的主要内容,如果未能解决你的问题,请参考以下文章