Пишу ПО под Linux которое подключается к аналогичным машинам и выполняет простенькие команды а-ля cat /proc/meminfo
и подобные выводящие инфу о состоянии ОС.
При длительной работе моего ПО на стороне подконтрольных машин возникает постепенное увеличение потребления ОЗУ. Методом включения и выключения моего ПО и замеров потребления ОЗУ средствами гипервизора выяснил, что виновником служит именно мое ПО.
Странно то, что утечка памяти происходит именно на других машинах. Поэтому киваю больше на участок кода, который отвечает за подключение по SSH. В связи с этим правильно ли написан код делающий запрос по SSH? Пример запроса ниже
qDebug() << "GetARMStatus " << ip;
m->lock();
int result = 0;
QString command = "ssh";
QStringList arguments;
arguments << "user@" + ip << " ps aux | grep openvpn; ";
QProcess *myProcess = new QProcess();
myProcess->start(command, arguments);
myProcess->waitForFinished();
myProcess->kill();
QString out = myProcess->readAllStandardOutput();
QString err = myProcess->readAllStandardError();
if((err.contains("No route to host")) || (out.contains("No route to host"))) {
result = 1;
}
if(out.contains("openvpn --daemon ovpn-client --status")) {
result = 0;
} else {
result = 1;
}
qDebug() << "GetARMStatus " << result << " " << ip;
delete myProcess;
m->unlock();
return result;
1) наследовать указатели от родителя
QProcess *myProcess = new QProcess(parent);
2) использовать умные указатели
QSharedPointer<QProcess> p = QSharedPointer<QProcess>(new QProcess);
3) не использовать указатели там где они не нужны
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите пожалуйста, как отключить оптимизацию компилятора в среде Code::Blocks?
Достаточно давно грезил подобными мыслями, и вот настала пора заняться этимИзложу вопрос как серию вопросов по совместной работе C++ при NodeJS