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

Re: [Debian]: Initscript nicht als root



Irgendwie ist deine Mail hier doppelt angekommen und das Subjekt hat
nur begrenzt etwas mit der Frage zu tun :-/

On Tue, Feb 17, 1998 at 12:54:55PM +0100, Rainer Nagel wrote:
> Hi Leute,
> Ich muß ein Java-Programm unter User www-data per Init-Script 
> starten.
> Dazu starte ich das Init-Script neu per su (`su www-data 
> /etc/init.d/gateway run`) mit dem Parameter "run". Daran erkennt das 
> Script, daß es als korrekter User läuft.
> Wenn das Init-Script den Parameter "run" sieht, startet es mit start-
> stop-daemon ein Shellscript ("RUN"), das die Umgebung für das Java-
> Programm setzt und dieses dann startet.
> Das läuft.

Werden die Skripte in /etc/init.d/ nicht immer mit 'start' als
Parameter gestartet?

> Mein Problem ist, daß ich dieses Java-Programm nicht mehr mit 
> `/etc/init.d/gateway stop` anhalten kann. Damit kann ich nur das 
> umgebende Shell-Script RUN beenden.
> Das Java-Programm wird dabei nicht beendet, sondern an den Init-
> Prozess gehängt.
> 
> Wie kann ich erreichen, daß auch das Java-Programm mitbeendet wird?
> `man bash`liefert nur eine Möglichkeit, Programme vom automatischen 
> Beenden auszuschließen, aber nicht umgekehrt.
> 
> Das Script "RUN" sieht so aus:
> 
> #!/bin/bash
> source ./ENV
> while true; do; $JAVA gateway; done

Werden bei einem 'kill -1' nicht auch die Child-Prozesse mitgekillt?

Sonst sehe ich vor allem zwei Moeglichkeiten:
- Skript schreiben, dass zu einem Prozess alle Kinder (und deren
  Kinder ...) sucht und auch diese killt.
- Das 'RUN' Skript entsprechend aendern und mit einem Signalhandler
  versehen. Hier waere ein Vorschlag von mir, allerdings bin ich nicht
  sehr vertraut mit Shellskripten: 
----------------8<------------------8<----------------
#!/bin/bash
source ./ENV

die () { cont=false; }
cont=true
trap die USR1

while [ $cont = "true" ]; do $JAVA gateway; done
----------------8<------------------8<----------------

Und nun das Skript mit 'kill -USR1' abschiessen.


-- 
marko  -  Nordisch by Nature

 "He was just a social drinker, but social every night."
                          'Woman in the wall' - Beautiful South -
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <your_email_address>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     382


Reply to: