dämonen erstellen

Antworten
Nachricht
Autor
dimevit
Beiträge: 11
Registriert: 04. Feb 2006 12:21

dämonen erstellen

#1 Beitrag von dimevit » 21. Feb 2006 16:15

hallo zusammen,

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

Vielen Dank,
Dime

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

Re: dämonen erstellen

#2 Beitrag von Janka » 21. Feb 2006 16:26

dimevit hat geschrieben: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
Beiträge: 11
Registriert: 04. Feb 2006 12:21

#3 Beitrag von dimevit » 21. Feb 2006 17:22

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

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#4 Beitrag von Janka » 21. Feb 2006 17:52

dimevit hat geschrieben: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: Alles auswählen

#!/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: Alles auswählen

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

Janka

klopskuchen
prolinux-forum-admin
Beiträge: 1444
Registriert: 26. Jun 2004 21:18
Kontaktdaten:

#5 Beitrag von klopskuchen » 21. Feb 2006 18:07

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
Beiträge: 11
Registriert: 04. Feb 2006 12:21

#6 Beitrag von dimevit » 21. Feb 2006 18:37

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

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#7 Beitrag von Janka » 22. Feb 2006 13:12

dimevit hat geschrieben: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

Antworten