Wie Daemon (Service) benachrichtigen?
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Wie Daemon (Service) benachrichtigen?
Hallo.
Die Daemons unter Lazarus haben ja den Eventhandler HandleCutsomCode.
Wie kann ich nun aus einer Anwendung ein (benutzerdefiniertes) Signal an meinen Daemon senden, damit er anfängt etwas zu tun?
Das Internet liefert mir leider keine (brauchbaren) Hinweise.
Die Daemons unter Lazarus haben ja den Eventhandler HandleCutsomCode.
Wie kann ich nun aus einer Anwendung ein (benutzerdefiniertes) Signal an meinen Daemon senden, damit er anfängt etwas zu tun?
Das Internet liefert mir leider keine (brauchbaren) Hinweise.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Wie Daemon (Service) benachrichtigen?
InterProcess-Communication heißt das Zauberwort.
Die Units ipc oder simpleipc gibts dafür und das läuft im Prinzip so ab, dass du einen Server und einen oder mehrere Clients hast und die sich Strings hin- und herschicken.
Die Units ipc oder simpleipc gibts dafür und das läuft im Prinzip so ab, dass du einen Server und einen oder mehrere Clients hast und die sich Strings hin- und herschicken.
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: Wie Daemon (Service) benachrichtigen?
Mit dem Simple IPC Server / Client geht es nicht.
Der Server in meinen Daemon gezogen, den Client in ein anderes Projekt in ein Form.
Mit zwei Forms geht es, aber der Daemon Server ist angeblich nicht aktiv (ist er aber doch).
Das scheint wohl nicht zu gehen.
Oder gibt es da was besseres?
Gruß
Der Server in meinen Daemon gezogen, den Client in ein anderes Projekt in ein Form.
Mit zwei Forms geht es, aber der Daemon Server ist angeblich nicht aktiv (ist er aber doch).
Das scheint wohl nicht zu gehen.
Oder gibt es da was besseres?
Gruß
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Wie Daemon (Service) benachrichtigen?
Vermutlich liegt es an irgendwelchen Rechten, wenn SimpleIPC mit einer Anwendung geht, mit dem Dienst aber nicht. Der Dienst läuft ja vermutlich als root, also unter einem anderen User als die Anwendung.
Der Klassiker in Linux sind Pipes.
Ein Linux Signal-Handler ist natürlich auch möglich aber hier werden keine Daten übertragen sondern eben nur die Information, dass jemand das Signal gesetzt hat.
-Michael
Der Klassiker in Linux sind Pipes.
Ein Linux Signal-Handler ist natürlich auch möglich aber hier werden keine Daten übertragen sondern eben nur die Information, dass jemand das Signal gesetzt hat.
-Michael
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: Wie Daemon (Service) benachrichtigen?
Ich habe das Global-Flag des IPCServers aber auf true gesetzt. Der Doku nach verstehe ich das so, dass nun alle Benutzer den IPCServer benachrichtigen können sollten.
Von irgendwelchen Linux-Handlern habe ich keine Ahnung, will ich auch nicht einsetzen, da mein Dienst nur Windows-Probleme lösen soll.
Gruß
Edit1: Also an dem Benutzer des Dienstes liegt es nicht. Auch unter meinem eigenen Benutzerkonto ist der IPCServer "nicht aktiv".
ControlService von Delphi kann zwar die Standard (Start, Stopp, ...) Signale übermitteln, aber die Custom-Signale (von 128-255)
werden nicht behandelt. Seltsam: ControlService sendet ein Steuer-"Byte", aber der Signalhandler behandelt ein DWord. Da muss doch was schief laufen, oder?
Von irgendwelchen Linux-Handlern habe ich keine Ahnung, will ich auch nicht einsetzen, da mein Dienst nur Windows-Probleme lösen soll.
Gruß
Edit1: Also an dem Benutzer des Dienstes liegt es nicht. Auch unter meinem eigenen Benutzerkonto ist der IPCServer "nicht aktiv".
ControlService von Delphi kann zwar die Standard (Start, Stopp, ...) Signale übermitteln, aber die Custom-Signale (von 128-255)
werden nicht behandelt. Seltsam: ControlService sendet ein Steuer-"Byte", aber der Signalhandler behandelt ein DWord. Da muss doch was schief laufen, oder?
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Wie Daemon (Service) benachrichtigen?
Antrepolit hat geschrieben:Von irgendwelchen Linux-Handlern habe ich keine Ahnung, will ich auch nicht einsetzen, da mein Dienst nur Windows-Probleme lösen soll.
Das macht ja auch der IPC-Server für dich.
Oder woran liegt das? Dass du nicht in der Lage bist, ein Objekt ohne zugehöriges Formular zu erstellen?
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: Wie Daemon (Service) benachrichtigen?
carli hat geschrieben:
Das macht ja auch der IPC-Server für dich.
Oder woran liegt das? Dass du nicht in der Lage bist, ein Objekt ohne zugehöriges Formular zu erstellen?
@Carli: Dein Lösungsvorschlag funktioniert nun mal nicht. Und Beleidigungen zeugen nicht von Kompetenz.
Ich arbeite mit Windows, nicht mit Linux.
Gruß
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Wie Daemon (Service) benachrichtigen?
Antrepolit hat geschrieben:carli hat geschrieben:
Das macht ja auch der IPC-Server für dich.
Oder woran liegt das? Dass du nicht in der Lage bist, ein Objekt ohne zugehöriges Formular zu erstellen?
@Carli: Dein Lösungsvorschlag funktioniert nun mal nicht. Und Beleidigungen zeugen nicht von Kompetenz.
Ich arbeite mit Windows, nicht mit Linux.
Gruß
Soweit ich weiß, sind (fast) alle Komponenten in Lazarus plattformunabhängig.
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: Wie Daemon (Service) benachrichtigen?
Das Problem besteht nach wie vor, wollte es nur nochmal erwähnt haben.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning