C Linux изменение pgrp (группы процессов) во время выполнения программыLinux pgrp изменение (групповой процесс) во время выполнения программы гр
Есть кусок рабочего кода C, чтобы изменить свою собственную группу процессов во время выполнения программы. Возможно, кто-то может выполнить работу тестовой программы ниже.
Bash проверка:
# ps -opid,pgrp,cmd | grep <pid>
C тестовая программа:
#include<stdio.h>
int main(int argc, char *argv[]) {
pid_t mypid = getpid();
printf ("issue: ps -opid,pgrp,cmd | grep %d\n", (int) mypid);
printf ("will change my pgrp in 10 sec\n");
sleep (10);
// missing here is the "magic" statment to change current process group
printf ("issue: ps -opid,pgrp,cmd | grep %d\n", (int) pid);
sleep (1000);
}
попробовать тестовую программку, и вы увидите, он не будет работать – user2050516
Thats, вероятно, потому, что вы обрабатываете уже группа лидер. Я не знаю, решает ли эта проблема вашу проблему, но вы можете изменить идентификатор группы процессов, развязав свой процесс, позволить родителям умереть и вызвать setid в вашем дочернем процессе. Таким образом, ваш дочерний процесс не будет лидером группы и изменит его идентификатор группы. –
Да, это способ демонстрации процесса, например, который я тестировал. Мне любопытно, могу ли я изменить существующий процесс без наложения ... – user2050516