检查可用的服务

时间:2013-08-28 06:06:52

标签: qt

我正在Qt写一个服务器应用程序。并拥有检查可用服务的Loader类。因此,为了成功启动服务器,我需要检查Loader,例如以编程方式,MySQL服务是否正常运行。我发现使用QProcess是与此相关的smth但是 当我编码以下内容时:

 QProcess mysql;
    mysql.start("mysql", QStringList() << "-uroot -ppassword");

    if(!mysql.waitForStarted())
        qDebug() << "Not loaded...";

    mysql.write("show databases;");
    mysql.closeWriteChannel();

    if(!mysql.waitForFinished())
        qDebug() << "Haven't finished yet!";

    QByteArray result = mysql.readAll();
    QString str(result);
    qDebug("%s", qPrintable(str));

我收到一个空字符串,你能帮忙检查一下服务是否开始了吗?

1 个答案:

答案 0 :(得分:2)

我不明白你的问题。你已经在你的代码中了:

if(!mysql.waitForStarted())
        qDebug() << "Not loaded...";

这清楚地告诉你你的mysql程序是否已启动。

但是如果我可以给你一个建议,可以通过QProcess使用mysql放弃你的想法。这可以启动mysql服务器,但仅此而已。查看QSqlDatabase的Qt文档。这允许您直接连接到服务器。尝试使用QSqlDatabase打开()数据库可以提供比您尝试使用的QProcess拐杖更多的信息。

编辑:将'readAll'更改为'readAllStandardError'。你会看到一些有趣的东西。