Я хочу отправить свой дочерний процесс на задний план, когда в конце есть символ &.
Я попытался сделать следующий код в моем дочернем процессе, в настоящее время оболочка имеет gid переднего плана 1000, а дочерний также имеет идентификатор группы переднего плана 1000. Но с тех пор у дочернего элемента pgid 2000, что не совпадает с pgid родителя, было бы легко, если бы я просто изменил gid переднего плана моего дочернего процесса на NOT , который будет таким же, как и оболочка.
// we are in the child process.
/* if it is in the background mode, we want to set the child process's
foreground id to not be the same as the terminal's foreground id, so
that the child process can run in the background. */
if(back_signal){
tcsetpgrp(0, child_gpid);
}
Но, я думаю, вышеприведенное неверно, потому что функция tcsetpgrp () делает группу процессов с идентификатором группы процессов pgrp приоритетной группой процессов на терминале, связанном с fd, , что означает, tcsetpgrp(0, child_gpid)
установить только дочерний процесс в качестве другого процесса переднего плана.
Короче говоря, я застрял в том, как заставить дочерний процесс работать в фоновом режиме. Кроме того, я не нашел никакого исходного кода для fg и bg, если вы знаете, пожалуйста, помогите мне.
Заранее спасибо.