
Sabe, é bem chato você ter só 256M de RAM. Depois de um tempo, resolvi desativar o servidor web por utilizá-lo muito pouco. Assim, sempre que preciso utilizá-lo o chamo. Mas também é bem chato fazer isso em linha de comando, não? Por isso fiz um script que pode ser útil pra você também: o zdaemon. (é, este é mais um artigo técnico)
A idéia
Bom, um daemon não tem nada a ver com demônios. Um daemon nada mais é do que um programa que executa sem necessidade de intervenção do usuário. Executa em segundo plano.
É um conceito de Unix, utilizado também pelo GNU/Linux (_GNU is Not Unix_ quanto a código-fonte: em projeto, é sim). Exemplos de programas que rodam como daemons são: Apache e MySQL. Porém há diversos e diversos outros daemons em um sistema Unix.
Um daemon geralmente é chamado de maneira direta, recebendo como parâmetro o que você quer que ele faça. Geralmente, tal ação se resume a: iniciar (start), parar (stop) ou reiniciar (restart). Algumas outras podem aparecer, mas estas são as mais comuns.
Então, quando queremos iniciar um daemon do apache, por exemplo, precisamos saber onde está o script desse daemon. No Debian, provavelmente estará em /etc/init.d e se chamará apache. Então, chamamos /etc/init.d/apache start.
Mas há casos em que nem sempre queremos que o daemon seja iniciado automaticamente (meu caso, citado na introdução deste artigo) ou outros em que precisamos reiniciar um servidor com freqüência.
A idéia, portanto, é termos um programa que faça uma GUI (interface gráfica) simples para um daemon de nossa escolha, nos permitindo iniciá-lo, pará-lo e reiniciá-lo rapidamente.
O script
A solução aqui proposta se resume a um shellscript usando Zenity (por isso o z do zdaemon) para construir janelas de diálogo. É, é como aquele script que monta imagens de CD pro apt-get ou aquele outro que permite trocar a imagem do GRUB.
Primeiro checamos se foi passado o endereço de um executável válido (ou se foi pedida ajuda sobre o uso (famoso parâmetro "--help"). Caso exista, o script simplesmente mostrará uma janela com as opções: start, stop, restart e quit, sendo quit a forma de sair do programa. Ao pedir uma das três opções que lidam com o daemon, o script mostrará em outra janela de diálogo a informação que o daemon retornou (se a operação foi ou bem ou mal sucedida).
Bem, aqui temos o script:
if [ $# = 1 ]
then
if [ "$1" = "--help" ]
then
echo "$0 <Caminho para o daemon desejado>"
exit
else
THEDAEMON=$1
fi
fi
if [ "
exit
fi
TOQUIT=0
while [ "$TOQUIT" = "0" ]
do
OPTION=`zenity --list --text "Escolha a operacao a \
executar no daemon $THEDAEMON:" --column Operacao start \
restart stop quit`
if [ "$OPTION" = "quit" ]
then
TOQUIT=1
else
zenity --info --text "Executando $THEDAEMON $OPTION."
$THEDAEMON $OPTION | zenity --text-info
fi
done
Como usar
Suponha que você use um computador com GNU/Linux sem poder instalar um servidor web. Sem problema! Você pode usar o Monkey, um servidor web muito leve e simples de instalar. Seu script de daemon se chama banana. Então, para executá-lo, basta chamar:
$ ./zdaemon.sh monkey/bin/banana
Certo, mas e se você quer rodar é o apache mesmo? Você tem a senha de root, mas é claro que utiliza o computador com um usuario sem privilégios na maior parte do tempo. Então, o que fazer?
Para isso, você pode chamar o GKSu. Tudo o que o GKSu faz é pedir a senha de root e então executar o comando passado como root.
Para rodar o apache:
$ gksu ./zdaemon.sh /etc/init.d/apache
Tudo isso considerando que o zdaemon esteja na pasta corrente. Você pode colocá-lo no /usr/bin para facilitar as coisas. E se você mexe muito com o Apache, por exemplo, pode criar um atalho com o comando acima mostrado. Isso facilita as coisas.
Bem, é isso. O zdaemon tem me ajudado um bocado e aqui está, se acharem útil também. ;-)
-- Cárlisson Galdino
| Anexo | Tamanho |
|---|---|
| zdaemon.sh | 610 bytes |





RSS




Comentários
daemon
Será que um dia ainda pego um demônio desse??Já sei que o gksu pode me ajudar muito....
Ainda n lembrei qual foi a tarefa que vc me passou...
Bom congresso...
Submeter um novo comentário