Processos
Um processo, nada mais é que um programa em execução.
Estes programas podem ser executados manualmente pelo usuário ou, automaticamente pelo sistema, seja como forem iniciados, o
GNU/Linux nos oferece várias ferramentas para gerenciá-los.
Comandos básicos para gerenciamento de processos:
O comando
ps:
Este comando é bem simples, porém, muito completo. Ele é útil para visualizar informações sobre um processo qualquer, num determinado instante. As informações mostradas por este comando são divididas em colunas, que devemos conhecer antes de prosseguir.
São elas:
- USER :: Login do proprietário do processo.
- PID :: Identificador do processo.
- %CPU :: Porcentagem de CPU utilizada pelo processo.
- %MEM :: Porcentagem de memória virtual utilizada pelo processo.
- VSZ :: Virtual Size. Tamanho do processo em Kbytes.
- RSS :: Número de páginas de 1 Kbyte na memória.
- TTY :: Identificador do terminal que controla o processo.
- STAT :: Estado atual do processo.
- START :: Horário em que o processo foi iniciado.
- TIME :: Tempo de processamento utilizado pelo processo.
- COMMAND :: Comando utilizado para iniciar o processo.
Alguns exemplos de uso do comando
ps, são:
1. Exibir processos associados a um terminal:
# ps -a
2. Exibir todos os processos iniciados pelo usuário:
# ps -u usuario
3. Exibir processos não associados a nenhum terminal:
# ps -x
O comando
pstree:
Este comando permite ver os processo em execução em forma de árvore. Alguns exemplos de seu uso, são:
1. Exibir os processo em execução e os comandos usados para executá-los:
# pstree -a
2. Exibir os processos em execução e os Process Identifier (PID) dos mesmos:
# pstree -p
O comando
pidof:
Todo processo possui um número identificador, este número é chamado PID (process identifier, ou identificador de processo). Para descobrirmos qual é o PID de um determinado processo, utilizamos o comando
pidof.
Exemplo de uso:
# pidof nomeProcesso
Os comandos
kill,
killall e
xkill:
Estes comandos são utilizados para enviar sinais aos processos em execução. Alguns dos sinais básicos que podem ser enviados aos processos, são:
- STOP :: Pausa o processo.
- CONT :: Continua a execução de um processo pausado.
- SIGTERM :: Finaliza o processo elegantemente.
- KILL :: Finaliza o processo instantaneamente.
Comando
kill:
Este comando envia um sinal para um processo, através de seu PID:
# kill -SINAL pid
Comando
killall:
Este comando envia um sinal para um processo, através de seu nome:
# kill -SINAL nomeProcesso
Comando
xkill:
Este comando transforma o ponteiro do mouse num
X finalizador de processos. Permite finalizar um processo apenas clicando em sua janela:
# xkill
O comando
top:
Este comando permite visualizar os processos em execução de forma dinâmica, assim como no comando
ps. As informações mostradas por este comando, são divididas em colunas.
Estas colunas, são:
- PID :: PID do processo.
- USER :: Usuário que iniciou o processo.
- PR :: Prioridade no uso do processador.
- NI :: Niceness.
- VIRT :: A memória virtual é a memória de troca (SWAP).
- RES :: A memória física é a memória RAM.
- SHR :: Quantidade de memória alocada para o processo.
* Importante: um processo reserva uma quantidade de memória além do necessário para sua execução. Esta memória pode ser requisitada por outros processos, caso seja necessário.
Os processos possuem vários estados, são eles:
- D (Daemon) :: Processo aguardando operações E/S.
- R (Running) :: Processo em execução.
- S (Sleeping) :: Processo em estado de espera.
- T (Stopped) :: Processo parado ou suspendido.
- Z (Zombie) :: Iniciado por um processo já finalizado.
- %CPU :: Porcentagem de uso do processador naquele instante.
- %MEM :: Porcentagem de uso da memória naquele instante.
- TIME+ :: Tempo de uso do processador (pode ser impreciso).
- COMMAND :: Comando utilizado para iniciar o processo.
Exemplos de uso do comando
top:
1. Monitorar todos os processos em execução:
# top
2. Monitorar processos de um determinado usuário:
# top -u usuario
3. Monitorar um único processo:
# top -p PID