OK, então você usa linux e conhece o ‘top‘, item básico no repertório de qualquer sysadmin, que permite acompanhar algumas informações sobre a carga do sistema e processos. Essa ferramenta antiga e poderosa, é de uma idéia tão simples porem tão prática, que ganhou um termo para designar ferramentas semelhantes, ferramentas “top-like“.

Para se enquadrar em uma ferramenta top-like o candidato tem que:

  • ser baseado em curses
  • ter atualizações em intervalos pré-definidos
  • ter formato tabulado
  • e opcionalmente permitir interação com os objetos analisados
  • Fiz uma lista com 16 ferramentas top-like disponíveis no Ubuntu 9.04. Enquanto fazia a pesquisa, encontrei pelo menos mais meia dúzia sem pacotes para o ubuntu, e se for considerar as que eu não encontrei esse número deve subir consideravelmente.

    Continue lendo!

    Os sistema Gnu/Linux permitem ao usuário/administrador a possibilidade de parar e retomar tarefas, bem como enviar tarefas para background ou foreground. Tomemos como exemplo o seguinte script:

    #!/bin/bash
    echo "Iniciado "
    for ((i=1;i<=20;i++)) do
        sleep 1
    done
    echo "Finalizado"
    exit 0

    Ele simplesmente faz um for de 1 a 20 com um sleep de 1 seg. Isso faz com que entre a exibição de “Iniciado”, e a exibição de “Finalizado” se passe 20 segundos.

    Aplique o modo de execução no arquivo e execute em um terminal:

    pascal@workaholic:~$ chmod +x exemplo.1.sh
    pascal@workaholic:~$ ./exemplo.1.sh

    Como esperado, durante os próximos 20 segundos seu terminal estará inutilizado. Agora vamos tentar uma abordagem diferente:

    Inicie uma tarefa e em seguida pare essa tarefa (Ctrl-Z):

    pascal@workaholic:~$ ./exemplo.1.sh
    Iniciado
    ^Z
    [1]+ Stopped ./exemplo.1.sh

    Exiba as tarefas:

    pascal@workaholic:~$ jobs
    [1]+ Stopped ./exemplo.1.sh

    Agora reinicie a tarefa em background:

    pascal@workaholic:~$ bg
    [1]+ ./exemplo.1.sh &

    Exiba novamente as tarefas:

    pascal@workaholic:~$ jobs
    [1]+ Running ./exemplo.1.sh &

    Coloque a tarefa novamente em foreground:

    pascal@workaholic:~$ fg
    ./exemplo.1.sh
    Finalizado

    Mágico não?

    Como podemos ver, as teclas Ctrl-Z nos permite parar um script ou até um programa como o mcedit, top, etc. Depois você pode gerenciar a fila de jobs utilizando os comandos:

  • jobs – exibe a lista de tarefas existentes bem como seu número de identificação e seu estado (stopped, running)
  • bg – coloca uma tarefa Stopped em modo Running, porem em background.
  • fg – coloca uma tarefa Stopped em modo Running, porem em foreground, ou passa uma tarefa Running em background para foreground.

    Um atalho para colocar um programa em background é utilizar o caractere & no final da linha de comando que chama o programa. Ex.

    pascal@workaholic:~$ ./exemplo.1.sh &
    Iniciado
    [1] 13432
    pascal@workaholic:~$ jobs
    [1]+ Running ./exemplo.1.sh &

    O gerenciamento de tarefas não foge muito disso, existem ainda alguns detalhes a serem observados e algumas lições a serem aprendidas, mas essas você aprende fazendo.

    Afinal, tudo mastigado vira vomito!