Veröffentlicht 21. November 200519 j Moin moin! Kann mir von euch jemand sinnvolle Tipps geben bzw. "simpel" erklären wie die Grundstruktur eines Daemon Launchers unter Linux aussieht? starten eines Prozesses mit /etc/init.d/prozess start ist ja nicht das problem ... auch nicht das abfangen der parameter im script ... aber wie funktioniert das mit dem beenden dann? Muss ich da nicht irgendwie die PID für kennen um dem Daemon ein SIGTERM zu schicken? Bin für jede Hilfe dankbar. mfg Eth
21. November 200519 j du meinst ein rc-skript. Um ein programm zu kontrollieren gibt es diverse andere programme: startproc, checkproc,killrpoc. Aber schau mal im /etc/rc.d/ nach einem File das skeleton heisst. Das ist ein vorgefertigtes rc-skript welches du nur auf dein programm anpassen musst. Ist sauber dokumentiert. cu
21. November 200519 j ja genau sowas hatte ich gesucht, dank dir Weißt du zufällig auch noch wie ich unter SuSE die runlevel config aktualisieren kann ohne yast zu verwenden??? Gibt es da sowas wie update-rc.d unter debian oder muss ich das manuell in die rc*.d verzeichnisse linken?
21. November 200519 j Moin, Gibt es da sowas wie update-rc.d unter debian oder muss ich das manuell in die rc*.d verzeichnisse linken? Letzteres ist der Fall.
22. November 200519 j Sowas hab ich schonmal versucht, und es ging nicht... Yast musste damals genutzt werden (Suse 9.1 glaub ich war des)... sehr sehr schade... und sehr nervig..
22. November 200519 j Ich hab mir jetzt das skeleton script umgeschrieben auf meine "Bedürfnisse" umgebastelt aber bekomme jetzt einen fehler: /etc/init.d/sp1_server start Starting symmedia SP/1 Server startproc: cannot execute /sp1-r2/sp1.all/release/blubb/release/server/bin/current/linux/sp1_server_n.sh: Exec format error failed Weiß jemand wo hier das Problem liegt? kann der keine shellscripts ausführen oder wie soll ich die Meldung interpretieren?
22. November 200519 j Hallo, existiert denn die Datei: /sp1-r2/sp1.all/release/blubb/release/server/bin/current/linux/sp1_server_n.sh ist sie ausführbar? Was steht da drinnen?
22. November 200519 j existiert denn die Datei: /sp1-r2/sp1.all/release/blubb/release/server/bin/current/linux/sp1_server_n.sh Sicher dat ist sie ausführbar? jupp: -rwyr-xr-x Was steht da drinnen? ./wrapper sp1_server_n.conf
22. November 200519 j Hi, ist das alles? ./wrapper sp1_server_n.conf Kein #!/bin/sh ./wrapper sp1_server_n.conf ?
22. November 200519 j jupp: -rwyr-xr-x das ist sicher nur ein Schreibfehler du meinst nicht y sondern x oder? ./wrapper sp1_server_n.conf Füge mal bitte das shebang hinzu a la #!/bin/bash Dein Skript sollte nun wie folgt aussehen: #!/bin/bash /pfad/zu/wrapper sp1_server_n.conf 'wrapper' ist auch ausführbar?
22. November 200519 j das ist sicher nur ein Schreibfehler du meinst nicht y sondern x oder? ^^ Füge mal bitte das shebang hinzu a la #!/bin/bash Dein Skript sollte nun wie folgt aussehen: #!/bin/bash /pfad/zu/wrapper sp1_server_n.conf Jo, jetzt krieg ich auch Fehlermeldungen. Es liegt daran dass er den wrapper nicht im aktuellen verzeichnis findet (aktuelles verzeichnis ist / weil ich das script von dort ausgeführt habe). Gibt es eine Möglichkeit rauszufinden in welchem Verzeichnis das aktuell ausführende script liegt? mit pwd find ich ja nur das working directory raus ... 'wrapper' ist auch ausführbar? Jupp ^^
22. November 200519 j Warum kannst du denn keinen absoluten Pfad angeben? Liegt 'wrapper' immer wo anders?
22. November 200519 j Warum kannst du denn keinen absoluten Pfad angeben? Liegt 'wrapper' immer wo anders? wrapper ist der Java Service Wrapper http://wrapper.tanukisoftware.org Wird dazu verwendet um Java anwendungen zu starten, stoppen etc. Logischerweise kann ich unsere Anwendung ja hin installieren wo ich will ... daher wäre das schon recht praktisch wenn ich das ganze mit relativem pfad machen kann ... sonst muss ich bei jeder installation die ganzen shellscripte neu erstellen lassen.
22. November 200519 j which wrapper hilft dir evtl. dabei. Du musst ja nur den Pfad, unter dem sich 'wrapper' befindet zum Systempfad hinzufügen, das geht mit export PATH=$PATH/pfad/zu/wrapper/ z.B. export PATH=$PATH/usr/bin/blubb/ und das noch in die .profile eintragen, dann sollte ein ausführen des 'wrapper' ohne absoluten Pfad möglich sein...aber dann ohne ./ <-- also nicht ./wrapper sondern nur 'wrapper'
22. November 200519 j Das hilft mir nicht wirklich weiter. Jede unserer Anwendungen hat den wrapper dabei ... die anwendungen sind 3 an der zahl ... der name wrapper ist überall hart verdrahtet ... daher kann ich auch nicht für jeden einen unterschiedlichen nehmen... wird schwierig ... habe aber rausgefunden dass der komplette aufrufpfad im $0 parameter steht ... mal schauen was man da noch so raus fabrizieren kann ...
22. November 200519 j aaah okay, sorry. Guck dir vielleicht auch mal die Kommandos 'dirname', 'basename' an...
22. November 200519 j Warum funzt das hier eigentlich nicht: if [ test -r /etc/init.d/rc3.d/S99_sp1_server ]; then rm /etc/init.d/rc3.d/S99_sp1_server fi ?!?
22. November 200519 j Warum funzt das hier eigentlich nicht: if [ test -r /etc/init.d/rc3.d/S99_sp1_server ]; then rm /etc/init.d/rc3.d/S99_sp1_server fi probiers doch mal so: if [ -r /etc/init.d/rc3.d/S99_sp1_server ]; then rm /etc/init.d/rc3.d/S99_sp1_server fi oder so: if test -r /etc/init.d/rc3.d/S99_sp1_server; then rm /etc/init.d/rc3.d/S99_sp1_server fi oder so: test -r /etc/init.d/rc3.d/S99_sp1_server && rm /etc/init.d/rc3.d/S99_sp1_server
22. November 200519 j Dankeeeee ... jetz hab ich nur noch ein prob das doofe Teil von wrapper reagiert auf den killproc -TERM nicht ... welchen code schickt eigentlich ein Kill-Befehl standard an die Anwendung?!?
22. November 200519 j Heißt soviel wie der Kill Befehl sendet automatisch ein SIGKILL oder wie? Hmmm ... hoffentlich krieg ich das noch hin dass der doofe wrapper auf nen SIGTERM reagiert ... killen iss doof weil dann unser server nicht richtig runter fährt .... naja egal ich krieg das schon hin erstmal danke für deine hilfe mfg Eth
22. November 200519 j Heißt soviel wie der Kill Befehl sendet automatisch ein SIGKILL oder wie? sorry, das weiß ich nicht wirklich, man müsste sich mal startproc/killproc ansehen, dazu hab ich allerdings gerade keine Zeit....
30. November 200519 j Moin, Moin, Letzteres ist der Fall. Stimmt nicht, das tool heißt insserv. gibt es mindestens seit 8.1, was älteres hab ich gerade nicht greifbar. Um also deamon 'foo' in Runlevel 3 und 5 zu starten folgendes Kommando: insserv foo,start=3,5 Für nähreres: man insserv
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.