bool signalOtherInstance() { const char *fname = getPIDFile().c_str(); pid_t pid = readPID( fname ); std::cout << "read pid: " << pid << std::endl; return ( pid > 0 && kill(pid, SIGUSR1) == 0 ); }
void KIPC::destroyPIDFile(const QString &kludgetId) { QString pidfile = getPIDFile(kludgetId); if (QFile::exists(pidfile)) QFile::remove (pidfile); }
void writePID() { const char *fname = getPIDFile().c_str(); pid_t pid = getpid(); FILE *fp = fopen(fname, "w"); if( fp ) { fprintf(fp, "%d\n", pid); fclose(fp); } else { std::cerr << "error writing pid" << std::endl; } }
bool KIPC::setProcessId(const QString &kludgetId, int pid) { QString pidfile = getPIDFile(kludgetId); QFile file; file.setFileName(pidfile); if (file.open(QIODevice::WriteOnly)) { file.write(QString::number(pid).toUtf8()); file.write("\r\n", 2); file.close(); return true; } return false; }
int KIPC::getProcessId(const QString &kludgetId) { int pid = 0; QString pidfile = getPIDFile(kludgetId); if (QFile::exists(pidfile)) { QFile file; file.setFileName(pidfile); if (file.open(QIODevice::ReadOnly)) { QString text = file.readAll(); file.close(); pid = text.toInt(); } } // qDebug(">>%s %d", qPrintable(kludgetId), pid); if (!checkProcess(pid)) return 0; return pid; }