Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Daemon Launcher?

Empfohlene Antworten

Veröffentlicht

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

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

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?

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..

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?

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

Hi,

ist das alles?

./wrapper sp1_server_n.conf
Kein
#!/bin/sh

./wrapper sp1_server_n.conf

?

jupp:

-rwyr-xr-x

das ist sicher nur ein Schreibfehler du meinst nicht y sondern x oder? :D


./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?

das ist sicher nur ein Schreibfehler du meinst nicht y sondern x oder? :D

^^

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 ^^

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.

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'

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 ...

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

?!?

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

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?!?

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

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....

"man kill" hilft weiter :rolleyes:

mfg

cane

  • 2 Wochen später...
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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.