К какой группе процессов относится моя программа, когда она начинается с bash?
Если я запускаю программу из bash
, значит, моя программа принадлежит к той же группе процессов, что и оболочка, или относится к новой группе процессов?
Поскольку я создаю оболочку в C , мне нужно обработать сигнал SIGINT
.
- `/ proc / $ PID / cwd`: есть ли эквивалент POSIX?
- системное обслуживание потока информации об услугах пользователей
- Тупик при чтении / ожидании
- Причины контроля IPC в Linux
- команда linux для проверки очереди сообщений POSIX
Теперь Ctrl + C посылает сигнал SIGINT
процессам на переднем плане, но принадлежит к той же группе процессов.
Я не могу завершить сеанс bash.
One Solution collect form web for “К какой группе процессов относится моя программа, когда она начинается с bash?”
bash-4.3$ ps -j | cat PID PGID SID TTY TIME CMD 4586 4586 4586 pts/1 00:00:00 bash 4600 4600 4586 pts/1 00:00:00 ps 4601 4600 4586 pts/1 00:00:00 cat bash-4.3$ ps -j; ps -j PID PGID SID TTY TIME CMD 4586 4586 4586 pts/1 00:00:00 bash 4602 4602 4586 pts/1 00:00:00 ps PID PGID SID TTY TIME CMD 4586 4586 4586 pts/1 00:00:00 bash 4603 4603 4586 pts/1 00:00:00 ps
Задание интерактивной оболочки выполняется с помощью группы процессов. Это то, что были созданы для групп процессов: запуск интерактивных заданий оболочки. Интерактивные оболочки – это единственные команды, которые фактически смешиваются с группами процессов.
Выше ps -j | cat
ps -j | cat
является (передним) заданием. И ps
и cat
находятся в одной и той же группе процессов, оболочка сделала ее основной группой процесса терминала, так что a ^C
вызывает отправку SIGINT.
Во втором примере два последовательных задания.
В
bash-4.3$ (ps -j; ps -j) PID PGID SID TTY TIME CMD 4586 4586 4586 pts/1 00:00:00 bash 4633 4633 4586 pts/1 00:00:00 bash 4634 4633 4586 pts/1 00:00:00 ps PID PGID SID TTY TIME CMD 4586 4586 4586 pts/1 00:00:00 bash 4633 4633 4586 pts/1 00:00:00 bash 4635 4633 4586 pts/1 00:00:00 ps
Подоболочка – это одно задание. Сама подоболочка может рассматриваться как неинтерактивная оболочка.