fix PID file

This commit is contained in:
Andrei Yankovich 2021-10-13 22:21:41 +03:00
parent d493203b20
commit d1b866aeb2
2 changed files with 10 additions and 5 deletions

View File

@ -29,8 +29,9 @@ ServiceBase::ServiceBase(int argc, char *argv[]) {
ServiceBase::~ServiceBase() {
delete d_ptr;
QFile pidFile(PCommon::instance()->getPidfile());
if (pidFile.exists()) {
qint64 pid = PCommon::instance()->getPidFromPidfile();
if (pid == QCoreApplication::applicationPid()) {
QFile pidFile(PCommon::instance()->getPidfile());
pidFile.remove();
}

View File

@ -19,11 +19,15 @@ QString PCommon::getPidfile() const {
qint64 PCommon::getPidFromPidfile() const {
QFile file = getPidfile();
if (!file.exists())
if (!file.open(QIODevice::ReadOnly)) {
return 0;
}
return file.readAll().toLongLong();
auto data = file.readAll();
file.close();
return data.toLongLong();
}
QString PCommon::getPWD() const {