Goeiemorgen 
Ik ben op het moment bezig met een monitoring script voor Tivoli, wat na moet gaan of bepaalde queues e.d. van een stuk software correct functioneren. Het grootste deel van deze tests word uitgevoerd mbv een tooltje genaamd "runmqsc" en dit tooltje word dus ook regelmatig gerund (elke twee minuten worden er zo'n 20 instances van gerund).
Een van de tekenen dat een queue niet goed functioneert is wanneer zo'n "runmqsc" progje blijft hangen
En nu moet ik dus in het script een nette check inbouwen die controleert of na een bepaalde tijd het process netjes is afgesloten.
De code die ik tot nu toe heb ik eigenlijk rete-simpel (vraag me ook af waarom die collega van me hierbij hulp nodig had), maar ik kwam er net via een collega achter dat dit niet goed gaat werken... Wat ik nu heb?
Ziet er op zich uit alsof het gaat werken, niet waar?
Dat zou het ook, ware het niet dat (en hier komt mijn denkfout) er niet een, maar meerdere runmqsc's tegelijk kunnen runnen... Er loopt namelijk nog een tweede script parallel aan deze en die roept ook runmqsc's aan 
Aniway... Om dit lange verhaal nu met een korte vraag af te sluiten
$? is de exit code van het laatst gerunde process
$! is de PID van het laatst gerunde background process (en die is vreemd genoeg ook niet te gebruiken hier, ondanks de ampersand aan het einde van het commando)...
Ik ben op het moment bezig met een monitoring script voor Tivoli, wat na moet gaan of bepaalde queues e.d. van een stuk software correct functioneren. Het grootste deel van deze tests word uitgevoerd mbv een tooltje genaamd "runmqsc" en dit tooltje word dus ook regelmatig gerund (elke twee minuten worden er zo'n 20 instances van gerund).
Een van de tekenen dat een queue niet goed functioneert is wanneer zo'n "runmqsc" progje blijft hangen
De code die ik tot nu toe heb ik eigenlijk rete-simpel (vraag me ook af waarom die collega van me hierbij hulp nodig had), maar ik kwam er net via een collega achter dat dit niet goed gaat werken... Wat ik nu heb?
code:
1
2
3
4
5
6
7
8
9
10
| detail=`runmqsc $QM<<EOF
DISPLAY QLOCAL(SYSTEM.CLUSTER.TRANSMIT.QUEUE) CURDEPTH
DISPLAY QLOCAL(SYSTEM.CLUSTER.TRANSMIT.QUEUE) MAXDEPTH
END&
EOF`
sleep 10
pgrep runmqsc >/dev/null 2>&1
if [ $? = 0 ]; then
echo "Still running"
fi |
Ziet er op zich uit alsof het gaat werken, niet waar?
Aniway... Om dit lange verhaal nu met een korte vraag af te sluiten
$$ is de PID van de shellWat is een simpele manier om in de Korne Shell (ksh) te komen achter het PID van het laatst gerunde process??
$? is de exit code van het laatst gerunde process
$! is de PID van het laatst gerunde background process (en die is vreemd genoeg ook niet te gebruiken hier, ondanks de ampersand aan het einde van het commando)...
Liege, liege, liegebeest!