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();
}

运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值