Linux - Buscando Processos com pgrep
O identificador do processo, ou PID, é um atributo fundamental. Com o PID, é possível manipular processos. A ferramenta pgrep permite buscar o identificador de um processo e algumas informações adicionais com base em um padrão específico:
O identificador do processo, ou PID, é um atributo fundamental. Com o PID, é possível manipular processos. A ferramenta pgrep permite buscar o identificador de um processo e algumas informações adicionais com base em um padrão específico:
pgrep [opções] padrão
A ferramenta recebe um padrão obrigatório que o processo deve corresponder. O parâmetro de opções determina como esse padrão será interpretado ou aplicado.
Aqui estão as principais opções que podem ser utilizadas com o comando:
- -l, --list-name: mostra uma lista de identificadores e o nome do comando.
- -a, --list-full: exibe uma lista de identificadores e o nome completo do comando.
- -v, --inverse: busca todos os processos que NÃO correspondem ao padrão.
- -c, --count: mostra a quantidade de processos que correspondem ao padrão.
- -f, --full: utiliza o nome completo do processo.
- -i, --ignore-case: ignora maiúsculas e minúsculas no padrão.
- -n, --newest: seleciona os processos mais recentes.
- -o, --oldest: seleciona os processos mais antigos.
- -O, --older <segundos>: escolhe processos que foram iniciados há pelo menos segundos.
- -P, --parent <PPID,...>: seleciona apenas os processos filhos de um processo pai específico.
- -u, --euid <ID,...>: seleciona processos de um determinado usuário.
- -x, --exact: exige correspondência exata com o nome do comando.
Por exemplo, para mostrar os identificadores de todos os processos executados com o comando gnome-shell:
programicio@Programicio:~$ pgrep gnome-shell 2645 2819
Identificadores de todos os processos relacionados ao navegador Google Chrome:
programicio@Programicio:~$ pgrep chrome 3822 10848 ... 11018
Agora, vamos exibir os identificadores de todos os processos cujo comando contém gnome:
programicio@Programicio:~$ pgrep *gnome* 2418 2520 ... 3581
Neste caso, o asterisco * no padrão indica qualquer quantidade de caracteres. Portanto, o padrão *gnome* corresponderá, por exemplo, a "gnome-shell" ou "gnome-terminal-".
Ou exiba todos os processos com comandos que contêm "gnome", mostrando o nome completo do comando:
programicio@Programicio:~$ pgrep -a *gnome* 2418 /usr/bin/gnome-keyring-daemon --foreground --components=pkcs11,secrets --control-directory=/run/user/1000/keyring 2520 /usr/libexec/gnome-session-binary --session=ubuntu ... 3581 /usr/libexec/gnome-terminal-server
Vamos obter a quantidade de tais processos:
programicio@Programicio:~$ pgrep -c *gnome* 7
Agora selecionamos processos por usuário (neste caso, pelo usuário "programicio"):
programicio@Programicio:~$ pgrep -l -u programicio 2383 systemd 2388 (sd-pam) ... 2819 gnome-shell-cal
É importante notar que também podemos obter identificadores de processos pelo nome do comando usando a ferramenta pidof:
programicio@Programicio:~$ pidof chrome 12459 12362 12359 12343 ...