/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Genstarte program der fejler
Fra : Jimmy


Dato : 28-02-03 03:35

Hej

Jeg har en applikation, der undertiden fejler og lukker, når den får for
meget at lave (gsmlib -> gsmsmsd).

Jeg ønsker automatisk at få den startet igen.

jeg har tænkt på at lave et perl/shell-script, der udfører en "ps aux" og
undersøger, som applikationen kører.
Hvis ikke skal den blot starte den.
Dette script ville jeg kalde fra Cron hvert minut.

Er der andre og bedre metoder?

mvh
Jimmy



 
 
Mogens Kjaer (28-02-2003)
Kommentar
Fra : Mogens Kjaer


Dato : 28-02-03 08:14

Jimmy wrote:
> Hej
>
> Jeg har en applikation, der undertiden fejler og lukker, når den får for
> meget at lave (gsmlib -> gsmsmsd).
>
> Jeg ønsker automatisk at få den startet igen.
>
> jeg har tænkt på at lave et perl/shell-script, der udfører en "ps aux" og
> undersøger, som applikationen kører.
> Hvis ikke skal den blot starte den.
> Dette script ville jeg kalde fra Cron hvert minut.

Var det ikke nemmest at starte applikationen i en løkke
i et script?

#!/bin/sh
until false
do
dinapplikation
done

Hvis applikationen ikke må genstartes for hurtigt,
kan du lægge en sleep ind før done.

Mogens

--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk


Peter Jensen (28-02-2003)
Kommentar
Fra : Peter Jensen


Dato : 28-02-03 08:20

Jimmy wrote:

> jeg har tænkt på at lave et perl/shell-script, der udfører en "ps
> aux" og undersøger, som applikationen kører.
> Hvis ikke skal den blot starte den.
> Dette script ville jeg kalde fra Cron hvert minut.
>
> Er der andre og bedre metoder?

Prøv at bruge "pgrep" i stedet for "ps". "pidof" kan vist også bruges.
Bare lave et bash script med en if-sætning. Men som Mogens nævner, så er
det nok mere optimalt at køre programmet i en løkke.

--
PeKaJe



Michael Wojciechowsk~ (28-02-2003)
Kommentar
Fra : Michael Wojciechowsk~


Dato : 28-02-03 09:04

On Fri, 28 Feb 2003 03:35:25 +0100, Jimmy
<nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote:

> Jeg har en applikation, der undertiden fejler og lukker, når den får
> for meget at lave (gsmlib -> gsmsmsd).

Ahh .. den udgave af gsmsmsd, jeg brugte, crashede, hvis jeg gav den
"forkert" input. Checker du de data du giver til gsmsmsd? Hvis ikke,
burde du måske gøre det.

> Jeg ønsker automatisk at få den startet igen.
> Er der andre og bedre metoder?

Du kunne bruge daemontools <http://cr.yp.to/daemontools.html> til at
holde øje med, om gsmsmsd kører. Daemontools vil selv genstarte
applikationen, når det er nødvendigt.

Der er igen grund til at lave hjemmelavede lappeløsninger IMHO.

--
Michael Wojciechowski

One must suffer before enlightenment.

Jimmy (28-02-2003)
Kommentar
Fra : Jimmy


Dato : 28-02-03 11:40

"Michael Wojciechowski" <wojci@stofanet.dk> wrote in message
news:3e5f1801$0$19110$ba624c82@nntp02.dk.telia.net...
> On Fri, 28 Feb 2003 03:35:25 +0100, Jimmy
> <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote:
>
> > Jeg har en applikation, der undertiden fejler og lukker, når den får
> > for meget at lave (gsmlib -> gsmsmsd).
>
> Ahh .. den udgave af gsmsmsd, jeg brugte, crashede, hvis jeg gav den
> "forkert" input. Checker du de data du giver til gsmsmsd? Hvis ikke,
> burde du måske gøre det.

Ja det gør jeg.
Jeg har rapporteret buggen til forfatteren.
Den opstår, når man placerer en textfil med invalide data - f.eks. en tom
fil - i gsmsmsd's spooldir.
Så bruger gsmsmsd flere og flere ressourcer til den til sidst bruger 100%


Nej, problemet er under stresstest.
Jeg sender 100 SMS vha gsmsmsd til den *selv* og den skal så samtidig
modtage de 100 SMS.


> > Jeg ønsker automatisk at få den startet igen.
> > Er der andre og bedre metoder?
>
> Du kunne bruge daemontools <http://cr.yp.to/daemontools.html> til at
> holde øje med, om gsmsmsd kører. Daemontools vil selv genstarte
> applikationen, når det er nødvendigt.

Fedt!
Tak for det.


> Der er igen grund til at lave hjemmelavede lappeløsninger IMHO.

Helt enig.
Jeg kender bare så lidt til Linux, at det ofte er min eneste udvej.

Til de andre:
Hvis jeg kører et .sh script med den omtalte løkke, vil scriptet så ikke
køre i en uendelighed og dræne ressourcer?

mvh
Jimmy



Peter Jensen (28-02-2003)
Kommentar
Fra : Peter Jensen


Dato : 28-02-03 12:11

Jimmy wrote:

> Til de andre:
> Hvis jeg kører et .sh script med den omtalte løkke, vil scriptet så
> ikke køre i en uendelighed og dræne ressourcer?

Hvis programmet går i baggrunden, så ja. Jeg kendte ikke det omtalte
program, så jeg antog at det bare kørte og blokerede scriptet. Næste
gennemgang af løkken kommer så først når programmet afsluttes.

--
PeKaJe



Michael Wojciechowsk~ (28-02-2003)
Kommentar
Fra : Michael Wojciechowsk~


Dato : 28-02-03 16:34

On Fri, 28 Feb 2003 11:39:53 +0100, Jimmy
<nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote:

> Ja det gør jeg.
> Jeg har rapporteret buggen til forfatteren.
> Den opstår, når man placerer en textfil med invalide data -
> f.eks. en tom
> fil - i gsmsmsd's spooldir.

Netop. Jeg gad blot ikke at fortælle forfatteren om det ;).

> Så bruger gsmsmsd flere og flere ressourcer til den til sidst bruger
> 100%

I mit tilfælde gik daemonen blot ned.

> Nej, problemet er under stresstest.
> Jeg sender 100 SMS vha gsmsmsd til den *selv* og den skal så
> samtidig modtage de 100 SMS.

Det script eller program, som modtager sms-beskederne fra gsmsmsd (der
er en option, SVJH) kunne jo passende indføre nogle delays. Måske vil
det hjælpe.

Du kunne jo også finde ud af, gsmsmsd vil begynde at opføre sig
normalt, hvis du indsætter en pause mellem hver besked der sendes.

--
Michael Wojciechowski

One must suffer before enlightenment.

Jimmy (28-02-2003)
Kommentar
Fra : Jimmy


Dato : 28-02-03 17:31


"Michael Wojciechowski" <wojci@stofanet.dk> wrote in message
news:3e5f814d$0$25845$ba624c82@nntp03.dk.telia.net...
> On Fri, 28 Feb 2003 11:39:53 +0100, Jimmy
> <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote:
>
> > Ja det gør jeg.
> > Jeg har rapporteret buggen til forfatteren.
> > Den opstår, når man placerer en textfil med invalide data -
> > f.eks. en tom
> > fil - i gsmsmsd's spooldir.
>
> Netop. Jeg gad blot ikke at fortælle forfatteren om det ;).

Tak tak


> > Nej, problemet er under stresstest.
> > Jeg sender 100 SMS vha gsmsmsd til den *selv* og den skal så
> > samtidig modtage de 100 SMS.
>
> Det script eller program, som modtager sms-beskederne fra gsmsmsd (der
> er en option, SVJH) kunne jo passende indføre nogle delays. Måske vil
> det hjælpe.

Det kan jeg ikke se, hvordan det skulle kunne.
gsmsmsd kalder blot et script hver gang den modtager en SMS.
Jeg kan ikke ændre på, hvornår gsmsmsd kalder scriptet eller spooler
spooldiret.


Mvh
Jimmy



Michael Wojciechowsk~ (01-03-2003)
Kommentar
Fra : Michael Wojciechowsk~


Dato : 01-03-03 15:05

On Fri, 28 Feb 2003 17:31:05 +0100, Jimmy
<nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote:

> Det kan jeg ikke se, hvordan det skulle kunne. gsmsmsd kalder blot
> et script hver gang den modtager en SMS. Jeg kan ikke ændre på,
> hvornår gsmsmsd kalder scriptet eller spooler spooldiret.

Hvis gsmsmsd laver en fork hver gang der kommer en ny besked, og
udfører scriptet, er der selvfølgeligt ikke ret meget at gøre. Der
bliver blot ikke udført nogen fork instruktioner. I hvert fald i
gsmlib-1.10, som jeg brugte. (*)

Følgende bekræfter det:

[wojci@maskine gsmlib-1.10]# grep -i -r fork *
TODO:- add fork to gsmsmsd

Så hvis du tilføjer f. eks. "sleep 1" til enden af dit script, som
modtager SMS-beskeder, vil gsmsmsd modtage en besked, sove 1 sekund,
og være klar til at modtage den næste.

* Jeg kunne selvfølgeligt have overset noget ..

--
Michael Wojciechowski

One must suffer before enlightenment.

Kjeld Flarup (01-03-2003)
Kommentar
Fra : Kjeld Flarup


Dato : 01-03-03 09:18

Jimmy wrote:
> Er der andre og bedre metoder?

standard måden er at bruge inittab


--
------------------------- Med Liberalistiske Hilsner --------------------------
Civilingeniør, Kjeld Flarup - Mit sind er mere åbent end min tegnebog
Ådalen 8, Mogenstrup, 7800 Skive, Tlf: 40 29 41 49, Fax: 96 95 74 48
Den ikke akademiske hjemmeside for liberalismen - www.liberalismen.dk


Claus Albøge (01-03-2003)
Kommentar
Fra : Claus Albøge


Dato : 01-03-03 15:40

Kjeld Flarup <kjeld.flarup@liberalismen.dk> writes:

> Jimmy wrote:
> > Er der andre og bedre metoder?
>
> standard måden er at bruge inittab

Men smartere er supervise og svscan:

http://cr.yp.to/daemontools/faq/create.html#why


/Claus A

Søg
Reklame
Statistik
Spørgsmål : 177555
Tips : 31968
Nyheder : 719565
Indlæg : 6408859
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste