Op een server heb ik een probleem dat na een bepaalde tijd gebruikers niet meer in een applicatie kunnen inloggen omdat er afgelopen sessies 'blijven hangen'. De software denkt dat het maximaal aantal gebruikers is ingelogd maar dat is dus niet het geval. Simpel op de lossen door de betreffende deamon even te killen en opnieuw op te starten. Uit sporen op het syteem maak ik op dat zoiets al eens eerder heeft gedraaid, met de brokstukjes probeer ik dit te reconstrueren.
Dit scriptje:
Edit: het mag duidelijk zijn dat shellscripting nieuw voor mij is.
Ik gebruik een kornshell onder AIX 4.3.3.
Dit scriptje:
code:
zou de deamon licd6.1 moeten stoppen. Dat gaat volgens mij wel goed maar ik krijg de melding1
| kill -9 `ps -ef|grep licd|awk '{print $2}'` |
code:
Om dit te proberen te begrijpen heb ik het scriptje omgevormd tot1
| kill: 64712: 0403-003 The specified process does not exist. |
code:
zodat ik kan kijken wat kill eigenlijk voor zijn kiezen krijgt. De output daarvan is1
| echo `ps -ef|grep licd|awk '{print $2}'` |
code:
De eerste is het bewuste processid, de tweede is waarschijnlijk het id van de ps -ef. Hoe kan ik dit nou zo maken dat alleen het goede proces wordt gekilled en hij niet probeert om de ps -ef ook te killen?1
| 38354 49192 |
Edit: het mag duidelijk zijn dat shellscripting nieuw voor mij is.
[ Voor 7% gewijzigd door Jazzy op 03-03-2004 16:14 ]