Processos

Este artigo explica a utilidade dos Processos no sistema. Como: identificar, iniciar (launch) e matar (kill). Obtendo mais informações através do diretório /proc, obter informações dos processos através das backticks (crases ``), colocando arquivos em variáveis, expressões matemáticas com 'expr', o comando/calculadora 'bc' e os códigos de retorno dos processos.

[ Hits: 24.792 ]

Por: jarlisson moreira em 24/07/2012


Introduzindo, checando e obtendo informações de processos



Dando sequência a meus artigos introdutórios sobre *Unix, vamos aprender como obter informações dos processos que estão ocorrendo no sistema para usá-las em nossos scripts.

Ou simplesmente, para aprender mais sobre nosso sistema. Uma maneira, simples, de ver um sistema operacional, é vê-lo como um punhado de processos / programas / comandos rodando no sistema, fazendo com que tudo funcione.

Estes processos tem as mais variadas origens, como por parte do kernel, do usuário, da rede, de outros processos, etc.

Logo adiante, ao checar os processos vigentes no seu sistema, entenderá melhor quando vê-los.

Poucos são os scripts em Shell que são isolados, ou seja, que são auto-suficientes em informação, comandos, processamento e armazenagem de dados.

O propósito e uso maior dos Shell Scripts, é interagir com o sistema. Afinal, o Shell é do Unix, e foi criado para interagir com o sistema.

Esta interação se dá por meio da exploração dos processos que estão rodando, ou que você fará rodar, ou parar, no sistema.

Isso é feito iniciando e fechando processos, seja em foreground (pro usuário ver) ou em background (sem você ver), usando as variáveis do ambiente e pegando as informações de retorno do processo (códigos), dentre outras maneiras.

Checando os processos

Vamos iniciar a exploração dos processos com o comando ps, que lista os processos ativos:

ps -ef

Ou, para *BSD:

ps -aux

Ambos comandos funcionam em GNU/Linux. Se quiser algo mais elaborado, use os comandos top ou htop.

Note os dados exibidos no terminal, principalmente a PID, que mostra a ID (identificação do processo), que é a informação que usaremos para identificar e controlar o processo.

Toda esta sopa de letras tem seu significado. E tais informações estão devidamente armazenadas em variáveis do sistema. Vamos conhecer algumas delas, que são particularmente úteis para serem usadas em scripts.

- $$ : Mostra a ID do atual processo. Digite no terminal:

echo $$

Depois, procure essa ID na lista de processos exibida no comando ps -ef.

Deve achar /bin/bash ou "su -", caso esteja como root.

Caso execute este comando através de script, a ID é a do script.

- $! : Mostra a ID do último processo que rodou em background do seu script.

Vamos criar um script para ver melhor essas variáveis em ação.

O script "proc1.sh", por si só, já é auto-explicativo:

echo "O processo atual é: $$"
echo -n "O último processo a ocorrer em background: "

# Note que não iniciamos processo algum no script
if [ "$!" == "" ]
then
 echo "inexistente"
else
 echo "$!"
fi

echo
echo "Executando um comando em background..."

# Vide meu artigo Pipelines caso não entenda o seguinte comando
ls /usr/bin > /dev/null &

echo "Agora, o último processo a ocorrer em background é $!"


Permita e execute para ver o resultado:

chmod +x proc1.sh
$ ./proc1.sh


    Próxima página

Páginas do artigo
   1. Introduzindo, checando e obtendo informações de processos
   2. O diretório /proc - Processos
   3. Usando crases `` (backticks) - Calculando expressões matemáticas com o 'expr'
   4. O comando/calculadora bc - Códigos de retorno
Outros artigos deste autor

Pipelines (Canalizadores)

Shell - Funções

LibreOffice Math

AWK - Introdução

Sed - Introdução

Leitura recomendada

Desinstalando todos os programas instalados a partir de uma data específica

KDialog com Shell Script - Conversão de slides JPG para projetores com suporte a miniaturas de imagens

Script "apagador de linhas"

Linux com boot no Pendrive, com todas as facilidades: Smart-USB_Key-Mania, PLOP Boot Manager e outros métodos

Multi-head usando udev e Xnest

  
Comentários
[1] Comentário enviado por azk em 24/07/2012 - 15:45h

ótimo artigo, cara!
bem didático... vou indicar p/ quem está começando!
favoritado

[2] Comentário enviado por coioti em 24/07/2012 - 16:22h

Muito bom artigo

Fala um pouco sobre o "nice" nos próximos.

Parabéns

[3] Comentário enviado por andrezc em 24/07/2012 - 22:34h

Dei uma rápida olhada por cima no artigo, não estou com tempo disponível para leitura agora, mas o conteúdo parece ótimo.

Obrigado pela contribuição.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts