Como posso observar a GUI da área de trabalho interagindo com o shell?

4

Por exemplo, se eu alterar o volume do som pelo widget de desktop do Ubuntu, acho que ele emitirá alguns comandos para o shell ou executará um script.

É possível ver o que é executado?

    
por user17 08.10.2016 / 15:41

1 resposta

4

Fazer algo na GUI, em geral, não invoca comandos shell. Acontece às vezes, mas é incomum. Em vez disso, tanto a GUI quanto os programas de linha de comando (incluindo shells) chamam as mesmas interfaces de programação subjacentes.

Se você quiser entender como um programa faz algo, verifique sua documentação ou seu código-fonte. Você pode tentar observá-lo, mas pode ser difícil descobrir.

No Linux, o programa strace lista os ps xww ), digamos 1234, e execute

strace -p1234 -o widget.strace

Execute a ação que você quer observar, então mate strace ( Ctrl + C no terminal). Olhe para o arquivo de saída e tente descobrir. Você verá muita comunicação com o servidor X ( read e write chama uma descrição específica de arquivo ) devido às ações da GUI. Se a ação for executada pelo servidor X, você precisará analisar esse protocolo ainda mais. Você também pode observar chamadas remotas via D-Bus ; Para entender isso, execute dbus-monitor para obter um rastreio legível do tráfego do D-Bus. Caso contrário, observe o que mais o programa está fazendo.

O som no Ubuntu normalmente passa pelo Pulseaudio . O aplicativo usa o D-Bus para se comunicar com o servidor Pulseaudio. O Pulseaudio tem uma interface de linha de comando com programas cujo nome começa com pa , incluindo pavucontrol para controlar o volume.

    
por 09.10.2016 / 00:40