Administrar Programas ou Processos no Linux Através do Terminal

Como saber quais programas ou processos estão em execução na minha máquina Linux? De que forma identificar, localizar e manipular os processos? Quanto recurso cada processo está consumindo? Isso é o que será abordado no decorrer do presente post.

Quais programas ou processos estão em execução?

Para saber quais programas ou processos estão sendo executados em nossa máquina linux, podemos utilizar o comando ps. Porém o comando puro, exibe somente os programas ou processos que estão executando em meu terminal atual, ou seja, os processos que foram iniciados a partir do terminal em que estamos.

comando ps para listar os processos em um terminal do linux.

Perceba que só dois processos foram listados: o bash que é o processo do terminal, e o processo do comando ps, que acabamos de executar.

Para obter a lista com todos os processos do sistema, passamos o parâmetro -e para o comando ps.

Execução em terminal linux do comando ps -e que lista todos os processos do sistema.

E para obter mais informações, além das que o comando ps nos mostra por padrão, utilizamos o parâmetro -f. Podemos então combinar os dois parâmetros com o comando ps para obtermos informações mais detalhadas sobre todo o sistema.

ps -ef
Execução em terminal linux do comando ps -ef, que lista todos os processos do sistema.

Como identificar, localizar e manipular os processos?

Identifica-se os processos para poder manipulá-los através daqueles números na coluna da esquerda que são a ID de cada processo. Esses identificadores recebem o nome de PID que significa Process IDentification.

Pausar e Continuar um Processo

Utilizamos o comando kill para enviar um sinal para um processo. Os processos utilizam sinais para se comunicar entre si. Sinais também são utilizados pelo Linux para interferir no funcionamento dos processos.

Exemplos de sinais são o STOP e o CONT, que podem ser utilizados, respectivamente, para interromper e retomar a execução dos processos.

Para utilizar o comando kill, passamos o sinal que desejamos enviar ao processo seguido do identificador único do processo, o pid. Por exemplo, parar e continuar o processo 2142 em nosso sistema.

Pausar e continuar um processo no terminal do linux.

Encerrar Processos

Vimos que podemos utilizar o comando kill para enviar sinais aos nossos processos. O sinal que finaliza um processo é o TERM. Porém, quando não indicamos nenhum sinal para o comando kill, é o sinal TERM que é executado por padrão.

O kill puro ou com o TERM finaliza um processo de forma que ele possa realizar ainda algumas tarefas antes de ser encerrado. Agora, se o seu programa travou de vez e você não quer dar nenhuma chance para ele, execute o comando kill -9. Esse último comando não tenta fechar o programa numa boa, ele ataca direto o processo, sem dar chance de recuperação. Só para constar, um processo é basicamente um programa em execução.

Finalizar um a um os processos pode ser demorado. Digamos que você tenha vários processos do firefox rodando e queira matar todos eles. Para isso, você pode executar o killall com ou sem -9 e, na sequência, o nome do processo. O comando completo ficaria assim: Killall firefox. Com isso, todos os processos do Firefox serão finalizados.

Pesquisando por Processos

Numa lista grande, as vezes é complicado encontrar o processo que se está procurando. Então podemos utilizar uma ferramenta de pesquisa para isso.

Vimos que, quando queremos redirecionar a saída do terminal para um arquivo de texto, utilizamos o caractere que indica saída de dados >. Agora, quando pretendemos redirecionar a saída para outro programa, utilizamos o caractere barra vertical | que muitas vezes também é chamado de pipe.

Esse programa que filtra as linhas aqui no terminal é o grep. Eu tenho o Firefox rodando em minha máquina e quero encontrar os processos em que está executando esse navegador. Digito então o seguinte comando: ps -ef | grep firefox. Dessa forma, eu vou pegar a saída do ps -ef e passar pelo programa grep com o parâmetro firefox.

Quanto recurso cada processo está consumindo?

Outro comando bastante útil é o top, que também serve para listar os processos no Linux. A diferença entre o top e o ps é que o top atualiza as informações de tempos em tempos.

No seu cabeçalho, o top mostra algumas informações sobre o sistema, como a quantidade de memória disponível e em uso, informações sobre o uso do processador, etc.

Na lista dos processos também temos informações sobre a utilização do processador e da memória. Os processos são ordenados, por padrão, pelo uso do processador.

Comando top no terminal do Linux para mostrar os recursos consumidos por cada processo.

Ver Somente Processos de um Determinado Usuário

O top possui algumas opções que podemos utilizar para alterar a forma padrão de como as informações são mostradas.

Para mostrar apenas os processos de um determinado usuário, podemos utilizar a opção -u:

top -u gabriela

Ver Informações de um Processo Específico

Para acompanhar informações de um processo específico, podemos utilizar a opção -p passando como argumento o PID do processo:

Primeiro localizamos o processo do nosso interesse e depois passamos ele como parâmetro do -p.

Pesquisa por processos do firefox com grep.Filtragem no top por processos.

Por padrão, o top atualiza a tela com novas informações sobre os processos a cada 3 segundos. Para alterar esse tempo, basta pressionar d enquanto o top estiver rodando, inserir o valor desejado e pressionar a tecla Enter:

Alterar frequência com que informações do top são atualizadas.

O top possui muitas opções. Lembre-se de que você pode obter informações sobre um comando consultando a sua documentação, digitando man de manual e o nome do comando no terminal.

man top
Ir para o topo