echo $$
Это говорит PID оболочки. Так, если я уничтожаю это использование оболочки
kill 123 #suppose 123 is PID of shell
Ничего не происходит на самом деле, я попробовал его. Я снова работал
echo $$
и оболочка работала под тем же PID. Почему оболочка не останавливается? Что может произойти, если оболочка уничтожается?
Главная причина состоит в том, потому что оболочки создаются для захвата эти TERM
сигнал. Это поведение документируется. Заключить удару в кавычки 4,3 руководства:
СИГНАЛЫ
, Когда удар является интерактивным, в отсутствие любых прерываний, он игнорирует SIGTERM (так, чтобы уничтожили 0, не уничтожает интерактивную оболочку), и SIGINT пойман и обработан (так, чтобы встроенное ожидание было прерываемо). Во всех случаях удар игнорирует SIGQUIT. Если управление заданиями в действительности, удар игнорирует SIGTTIN, SIGTTOU и SIGTSTP.
От man kill
:
сигнал по умолчанию для уничтожения является ТЕРМИНОМ.
Теперь, если бы необходимо было указать kill -KILL $
, что действительно уничтожило бы оболочку, и после того как оболочка управления выходит - который закрыл бы терминал. Опции -9
, -KILL
и -SIGKILL
являются всеми псевдонимами для того же kill
сигнал, который является, почему любой из этих 3, работа, и является одним из псевдонимов, на которые Siguza указал в комментариях.
Контрастирование, к какой M. Becerra заявил, это не имеет никакого отношения к самому окну, поскольку окно PID всегда отличается от оболочки:
# Shell PID
$ cat /proc/self/status | grep '^Pid:'
Pid: 7058
$ echo $
14709
# GUI window PID
$ xdotool getactivewindow getwindowpid
2774