Название: QProcess Qt4 Linux Отправлено: mega_m от Октябрь 01, 2007, 18:41 qint64 pid;
QProcess::startDetached(QString("myprog"), QStringList() << "yo" , QDir::homePath(), &pid); Новый процесс стартует, но значение переменной pid меньше на 2 реального значения pid программы. Как это понять ? Может из-за "On Unix, the started process will run in its own session and act like a daemon." ? Название: Re: QProcess Qt4 Linux Отправлено: Dodge от Октябрь 05, 2007, 13:37 вопрос конечно интересный... в виндах все норм...
Название: Re: QProcess Qt4 Linux Отправлено: Mixolap от Октябрь 06, 2007, 10:40 Процесс демонизации в Linux включает в себя два fork, отсюда реальный pid и на два больше.
Кстати, не факт что на два, если между форками еще процессы запускались, то будет больше чем два на количество других процессов. Название: Re: QProcess Qt4 Linux Отправлено: mega_m от Октябрь 07, 2007, 23:08 Mixolap. Вот реализация с помощью LinuxAPI
int status; pid_t pid = fork(); if (pid > 0) { fprintf (f, "%i", pid); fclose (f); wait(&status); } else { execlp("prog",....,NULL); } Так можно делать хоть до бесконечности. Это просто копия процесса. pid прекрасно сохраняется и в дальнейшем по нему легко убить процесс. Хочется кросс кода без #ifdef. |