Percebi que não havia processos com o nome " gnome-terminal
", embora eu estivesse usando o chamado " gnome-terminal
", que era chamado clicando no ícone na barra de menus na área de trabalho.
$ ps -au | grep gnome
cul8er 8763 0.1 0.8 554960 33268 pts/22 Sl 05:16 0:00 /usr/lib/gnome-terminal/gnome-terminal-server --app-id com.canonical.Terminal.AnAuzDeiSeoqQhlGKbPNPeHhAROwBwtP
cul8er 8771 0.0 0.0 14852 1832 pts/22 S 05:16 0:00 gnome-pty-helper
cul8er 8821 0.0 0.0 14656 2232 pts/23 S+ 05:27 0:00 grep --color=auto gnome
Então eu digitei gnome-terminal &
. a saída foi a seguinte:
$ gnome-terminal &
[2] 8865
$
[2]+ 終了 gnome-terminal
$ echo $LANG
ja_JP.UTF-8
Este resultado parece mostrar que o processo de gnome-terminal
saiu imediatamente quando o emulador de terminal foi exibido.
Se for verdade, por que posso ver um novo terminal sem um processo associado a ele?
Por isso, verifiquei o comando gnome-terminal
:
$ which gnome-terminal
/usr/bin/gnome-terminal
$ file /usr/bin/gnome-terminal
/usr/bin/gnome-terminal: Python script, ASCII text executable
gnome-terminal
é um script python
.
Eu olhei para isso. Eu não conseguia entender o suficiente porque eu não sei python
, no entanto notei /usr/lib/gnome-terminal/gnome-terminal-server --app-id
, que foi mostrado na saída de ps
, está relacionado a esta questão. Mas eu não sei o que significa ' subprocess
' e ' Popen
'.
subprocess.Popen(['/usr/lib/gnome-terminal/gnome-terminal-server',
'--app-id',
name],
stdout=subprocess.DEVNULL,
stdin=subprocess.DEVNULL,
stderr=subprocess.DEVNULL)
Se os subprocessos forem invocados sempre que o script gnome-terminal
for executado, vários processos deverão ser executados quando eu abrir os terminais do gnome. No entanto, parece sempre que existe apenas um processo /usr/lib/gnome-terminal/gnome-terminal-server --app-id
na saída de ps
.
O que está acontecendo enquanto o script é executado?
E onde está o processo que representa o chamado " gnome-terminal
"?
SO: Ubuntu 15.04