Dois ids de processo para um terminal no bash linux mint

0

Estou executando um terminal bash no linux mint. Eu queria ver os ids do processo do terminal em execução.

Então eu tentei duas coisas:

ps -C 'bash'

ls -l /proc/*/exe | grep bash

Ambas fornecem dois ids de processo. Alguém pode explicar o motivo desses dois IDs de processo para apenas um terminal? como identificar o id do processo real do terminal entre dois?

Obrigado

    
por techfun 01.03.2014 / 19:56

1 resposta

2

Os terminais não têm IDs de processo.

São processos que possuem IDs de processo, é claro. Os terminais têm IDs próprios e você os verá nos resultados de ferramentas como w , who e (na TTY column) ps . Mas estes não são IDs de processo.

A relação entre processos e terminais não é de 1: 1. Além disso, como grawity apontou, um shell não é um terminal . Um terminal é um dispositivo. Um shell é um programa. O programa bash é um shell, cuja entrada e saída (no modo interativo, pelo menos) são lidas e gravadas em um terminal dispositivo .

Terminais no computador pessoal Linuxes e Unices geralmente não são reais , físicos, dispositivos, conectados a uma porta serial de algum tipo. Pelo contrário, eles são terminais virtuais ou pseudo . Ambos são produtos de programas de emulador de terminal .

  • No caso de terminais virtuais, esse programa é incorporado ao kernel do sistema operacional (embora tenha havido movimentos para alterar isso) e não possui um ID de processo porque não é um processo distinto em seu próprio certo.
  • No caso de pseudo-terminais, há um processo que gerencia o lado "mestre" do dispositivo e exibe o conteúdo do terminal de alguma forma. Normalmente, é um programa GUI, como xterm , lxterminal , konsole , gnome-terminal ou rxvt . (Poderia, alternativamente, ser os daemons SSH ou TELNET.) Eles têm IDs de processo. Mas é o emulador terminal que é o processo, não o dispositivo pseudo-terminal.

Por que você vê dois bash processos: Você tem dois bash processos em execução. É simples assim. Eles não estão necessariamente associados ao mesmo terminal, ou mesmo a qualquer dispositivo terminal. Novamente, a coluna TTY na saída de ps informará o que terminal de controle tem cada processo. (Os terminais não possuem IDs de processo, mas de certa forma os processos possuem IDs de terminal.)

    
por 02.03.2014 / 00:07