shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] script para fila de job?!


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] script para fila de job?!
Date: Fri, 27 Aug 2004 22:06:50 -0300

Caro ltcosta (vc esqueçeu de colocar seu nome),

o loop que vc pretende é +/- o seguinte:

for prog in prg1 prg2 prg3 prgn
do
    $prog
done

isto é, a variável prog assumiria o nome de cada programa na lista e em
seguida executaria um-a-um.

Porém, se por algum motivo esta solução não atender, o melhor que vc tem a
fazer é monitorar o sinal 17 com um trap. Toda vez que um processo filho
termina, um sinal 17 é gerado. Teste com as seguintes linhas:

Prompt> trap "echo processo filho terminou" 17

em seguida faça:

Prompt> sleep 3&

3 segundos após, vc receberá a msg: "processo filho terminou"

Para restaurar o sinal para o seu default faça:

Prompt> trap 17

Existe tb um built-in do shell que é o cmd wait, assim vc pode montar um
loop disparando os programas em backgound e fazendo um wait $!, já que $!
contem o PID do último programa colocado em bg.

PS: Estarei fora da lista por uma semana pois estarei dando um curso na
Hacker Union, evento de treinamento gratuito que acontecerá em Curitiba na
próxima semana (detalhes em
http://www.gnus.com.br/index.py?a=show_ev&id=76).

Espero que tenha atendido. Sucesso,

Julio Cezar Neves
- Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: address@hidden [mailto:address@hidden]
| Enviada em: sexta-feira, 27 de agosto de 2004 21:08
| Para: address@hidden
| Assunto: [shell-script] script para fila de job?!
| 
| 
| 
|  Pessoal, tenho uma questão. uso um cluster com administração 
| particular
| (Um centro de computação). Algumas máquinas são requisitadas pelos
| usuários e torna-se complicado colocar um monte de trabalho 
| na fila, pois
| o adm pode barrar. Estava pensando: Poxa, poderia checar com o ps
| -(opções) ou top se o trabalho que enviei está rodando ou 
| não. Caso não
| mais esteja um script executa um novo trabalho.
| 
| O problema é que não sei como posso fazer isto, pois teria 
| que fazer um
| loop no tempo para saber com o ps ou top se o padrão de 
| executável está
| rodando na lista.
| 
| Seria algo assim:
| 
| #!/bin/bash
| #PBS -N gauss_job
| #PBS -j oe
| #PBS -l ncpus=1
| #PBS -q short
| g03root="/usr/local"
| GAUSS_SCRDIR="/pmt/ltcosta"
| export g03root GAUSS_SCRDIR
| . $g03root/g03/bsd/g03.profile
| cd /pmt/ltcosta/metil
| echo "estou em alcateia" >> c1mim.out
| echo "inicio do job: c1mim" >> c1mim.out
| date >> c1mim.out
| g03 c1mim.com  <-----(este é executable file!!!)
| 
| em outro file devo colocar um script e checar se:
| 
| ##############################################################
| ############
| CPU1 states:  40.4% user   1.3% system    0.0% nice   0.0% 
| iowait  57.1% idle
| CPU2 states:   0.0% user   0.0% system    0.0% nice   0.0% 
| iowait 100.0% idle
| CPU3 states:   0.2% user   1.1% system    0.0% nice   0.0% 
| iowait  98.1% idle
| Mem:  2581468k av, 2568324k used,   13144k free,       0k 
| shrd,  208224k buff
|                    1409696k actv,  363388k in_d,   58376k in_c
| Swap: 5245180k av,   49864k used, 5195316k free               
|   2086980k
| cached
| 
| PID   USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME 
| CPU COMMAND
| 24268 ltcosta   25   0 67048  64M  2532 R    99.3  2.5   3:14 
|   3 l502.exe
| 673   nobody    15   0  1504 1440   716 S     3.1  0.0 123:19 
|   1 gmetad
| 
| Vejam que USER = ltcosta seria meu job. Nesta lista 
| possivelmente poderá
| existir outros USER. Talvez alguém já tenha feito isto, mas 
| quero tentar
| fazer. Qualquer dica é bem vinda, sites e material para leitura.
| 
| Pensei em fazer com AWK tb, o que acham?!?!
| 
| t +
| 
| 
| 
| ---------------------------------------------------------------
| Universia Brasil. Em todas as fases da vida acadêmica.
| Acesse o portal e confira nossos serviços e benefícios:
| http://www.universiabrasil.net/
| 
| 
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de 
| programação, como perl, C etc. Quem insistir em não seguir 
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]