Daemon nach X-Server starten

Software besorgen und anwenden
Post Reply
Message
Author
Elmey

Daemon nach X-Server starten

#1 Post by Elmey »

Hi,

ich möchte einen (zugegebenermaßen sehr speziellen) Daemon mit root-Rechten nach dem X-Server starten, also wenn zumindest der Loginscreen von KDE oder konsorten erschienen ist. Mit einem Initscript in /etc/init.d funktioniert das nicht - wie also ist sowas zu realisieren?

Ein KDE-Autostart oder ähnliches Bringt mir auch nix, da das User-Abhängig ist...

Elmey

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#2 Post by hjb »

Hi,

warum sollte das nicht gehen? KDM wid doch auch über ein Init-Skript gestartet oder lässt sich zumindest so einrichten. Liegt es an den Zugriffsrechten, dass also dem Daemon der Zugriff aufs Display verwehrt wird? Da hilft vielleicht ein xhost in einem Startskript des Displaymanagers, aber da kenne ich mich auch nicht so genau aus.

Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

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

#3 Post by Janka »

Solche Aufrufe kommen in das "Xsetup" des xdm/kdm. Dies ist normalerweise die Datei /etc/X11/xdm/Xsetup

Damit du nicht bei jedem Start von X einen weiteren Daemon startest, solltest du prüfen, ob dieser schon läuft. Normalerweise macht man dies über eine pid-Datei in /var/run.

Falls du kdm benutzt, kannst du /opt/kde3/share/config/kdm/kdmrc auch eine andere Datei spezifizieren.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Elmey

#4 Post by Elmey »

Thx für die Hilfe.
Janka wrote:Solche Aufrufe kommen in das "Xsetup" des xdm/kdm. Dies ist normalerweise die Datei /etc/X11/xdm/Xsetup
Ich nehme mal an, Xsetup_0 bei FC 6 ist das gleiche!?

Prinzipiell ist das Verfahren natürlich unpratkisch dort was automatisiert in die Datei zu schreiben da man bei jeder installation erst prüfen muss, ob schon was drinsteht.

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

#5 Post by Janka »

Das ist das Xsetup, speziell für das Display :0, also den ersten lokalen Xserver.

Einen Daemon zu bauen, der zwingend X benötigt, ist sowieso ganz schlechter Programmierstil. Ich kenne so etwas von dem mitgelieferten USV-Treiber der Mustek-PowerMust-Serie -- Schrott. Zum Glück gibt es ja "nut", und da ist inzwischen ein brauchbarer Treiber reverse-engineered worden.

So etwas solltest du also nicht selbst bauen. Teile das Programm in einen Daemon, der nur über Pipes bzw. Sockets kommuniziert, und eine GUI, die den aktuellen Status des Daemons via Pipe/Socket anzeigen und verändern kann.

Erscheint vielleicht anfangs aufwendiger, erzeugt aber wesentlich weniger Probleme.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Elmey

#6 Post by Elmey »

Naja, es ist kein Daemon im klassischen Sinne, er reagiert vielmehr auf Ereignisse die vom User verursacht werden und gibt Feedback auf die Oberfläche unter verwendung von QT. Sprich ohne einen X-Server/Windowmanager könnte man diesen Daemon sowieso nicht sinnvoll verwenden.

Post Reply