первый терминал:
$ sort | sort
pid первого - 1, pid второго - 2.
второй терминал:
$ strace -p 1
strace: Process 1 attached
read(0,
Третий терминал:
$ strace -p 2
strace: Process 2 attached
read(0,
Четвертый терминал:
$ ps l
0 1000 1 6891 20 0 27464 912 wait_w S+ pts/2 0:00 sort
0 1000 2 6891 20 0 27464 924 pipe_w S+ pts/2 0:00 sort
что указывает, что оба sort
процесса находятся на переднем плане.Однако, когда я помещаю какой-либо символ (A
) в первый терминал, strace
указывает, что только первый sort
(с pid
= 1) получил ввод:
read(0, "A\n", 130048) = 2
ОднакоКогда я посылаю SIGINT
нажатием Ctrl-C, оба процесса sort
получают сигналПочему?
--- SIGINT {si_signo=SIGINT, si_code=SI_TKILL, si_pid=1, si_uid=1000} ---
--- SIGINT {si_signo=SIGINT, si_code=SI_TKILL, si_pid=2, si_uid=1000} ---