
Я понимаю, что когда я открываю эмулятор терминала, например xterm
, и затем перечисляю процессы с помощью ps
, я могу увидеть xterm
запущенный как процесс.
Но когда я нажимаю Ctrl+Alt+F#, я получаю «полноэкранный терминал». Является ли этот «полноэкранный терминал» также процессом? Или это пользовательский интерфейс, предоставляемый ядром, но не являющийся фактическим процессом?
решение1
В отличие от обычных эмуляторов терминала, этот полноэкранный терминал не обрабатывается пользовательским процессом, а, как вы догадались, предоставляется ядром.
ВидетьВиртуальная консоль
решение2
Если я войду в консоль 1 и введу sleep 10000, а затем создам список процессов с помощью:
ps -AHl | grep -B2 sleep
я получил
4 S 0 4002 1 0 80 0 - 18473 - tty1 00:00:00 login
4 S 1000 23312 4002 0 80 0 - 8235 - tty1 00:00:00 bash
0 S 1000 23360 23312 0 80 0 - 1452 - tty1 00:00:00 sleep
Ожидается, что sleep
находится в bash
, а bash
находится в login
login
имеет родительский идентификатор 1, так что это все, что есть.
Из этого мы видим, что процесс есть login
, но нет процесса для терминала.