dämonen erstellen

Post Reply
Message
Author
dimevit
Posts: 11
Joined: 04. Feb 2006 12:21

dämonen erstellen

#1 Post by dimevit »

hallo zusammen,

kann mir jemand paar Links schicken, wo ich nachschauen kann, wie man dämonen erstellt.

Vielen Dank,
Dime

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

Re: dämonen erstellen

#2 Post by Janka »

dimevit wrote:hallo zusammen,
kann mir jemand paar Links schicken, wo ich nachschauen kann, wie man dämonen erstellt.
Anrufen kannst du die! Nicht erstellen - das ist nicht mal mit schwarzer Magie erreichbar. :P

Daemon-Prozesse sind ganz normale Prozesse, bei denen man die Ein- und Ausgaben in Dateien bzw. Pipes oder Sockets macht. Ein Programm wird also bloß dadurch zum Daemon, dass es ohne Benutzerinteraktion irgendetwas macht.

Ein ganz simpler Daemon ist z.B. ein Programm, das von cron aufgerufen wird und seine Ausgabe in eine Datei schreibt.

Viele Daemon-Prozesse werden auch über init-Skripte gestartet. Für Beispiele guckst du am besten mal im Verzeichnis /etc/init.d nach.

Janka

dimevit
Posts: 11
Joined: 04. Feb 2006 12:21

#3 Post by dimevit »

Hi Janka,

alldas ist mir klar, Aber ich will mir ein Dämon für Powermanagement programmieren, denn ACPID mir nicht. Mein Dämon soll Ereignisse abfangen und in ein von mir erstellten Runlevel wechseln. Ich brauch aber Tutorials wie man Dämone erstellen kann.

Danke,
dime

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

dimevit wrote:Hi Janka,
alldas ist mir klar, Aber ich will mir ein Dämon für Powermanagement programmieren, denn ACPID mir nicht. Mein Dämon soll Ereignisse abfangen und in ein von mir erstellten Runlevel wechseln. Ich brauch aber Tutorials wie man Dämone erstellen kann.
Nochmal: Einen Daemon erstellt man, indem man ein Programm (kann auch ein beliebiges Skript sein) in den Hintergrund schickt (vom Kontrollterminal abkoppelt). :?

z.B. vi mydaemon

Code: Select all

#!/bin/bash
while : 
do
  echo X >>Xse
  sleep 1
done
Dann "nohup mydaemon &", und schon hast du einen Daemon, der Xse in die Datei Xse schreibt.

Was dein Problem mit acpid angeht: Du musst eigentlich nur ein Skript schreiben, das /proc/acpi/event zeilenweise ausliest, z.B. mit dem Shell-Builtin read

read </proc/acpi/event

und dann das Ergebnis in $REPLY auswertet. Read wartet übrigens selbst, man braucht also kein sleep oder so in der Schleife.

Code: Select all

#!/bin/bash
while &#58; 
do
  read </proc/acpi/event
  echo $REPLY  
done
So verständlicher?

Janka

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#5 Post by klopskuchen »

Ich glaube du suchst nach "main(){ fork(); exit(); setsid(); chdir(); umask(); deine_funktion();}". Oder danach das "cmd &" doch ausreicht?

MfG, Klopskuchen
When all else fails, read the instructions .

dimevit
Posts: 11
Joined: 04. Feb 2006 12:21

#6 Post by dimevit »

Danke für die Hilfe. Ich glaube ich komme weiter. Ich hätte noch eine Frage:
Beim Aufruf von cat /proc/acpi/event read bekomme ich die Meldung
bash: /proc/acpi/event: Das Gerät oder die Ressource ist belegt

dann habe ich acpid gestopt, bekamm ich keine Fehlermeldung aber ein Ergeniss hab ich auch nicht bekommen

Wisst ihr woran das liegen kann?

Danke
Dime

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#7 Post by Janka »

dimevit wrote:Beim Aufruf von cat /proc/acpi/event read bekomme ich die Meldung
bash: /proc/acpi/event: Das Gerät oder die Ressource ist belegt

dann habe ich acpid gestopt, bekamm ich keine Fehlermeldung aber ein Ergeniss hab ich auch nicht bekommen

Wisst ihr woran das liegen kann?
acpid läuft wohl doch noch. Guck einfach nach, welches Programm die Datei noch geöffnet hat:

$ lsof | grep /proc/acpi/event

Janka

Post Reply