Programmstart nach Kernel event?

hiasman

hiasman

Mitglied
Hallo,

ich habe ein frisch installiertes Debian Sarge mit 2.6er Kernel. Und arbeite mit KDE.

?( (Wie) kann ich durch ein bestimmtes Kernel event ein Programm starten?

Konkret:
  • Ich habe einen Palm Zire 72 mit dem ich mit KDEPIM synchronisiere. Läuft wie am Schnürchen! Jetzt möchte ich das System so einrichten, dass nach Anschluss des Palm automatisch kpilot gestartet wird. An welchen Ecken muss ich dazu schrauben? ODER -- unter welchen Stichworten finde ich Erklärungen dazu?
  • Ich möchte nach einstöpseln eines bestimmten USB - Stick automatisch mounten, den Konqueror öffnen und ein Datensicherungsscript starten... ;-)

Vielen Dank schon mal!

Gruß,
hiasman
 
Dein Problem mit kpilot sollte leicht zu lösen sein: Du musst einfach kpilot so einrichten, dass er beim Starten von KDE mitstartet. Damit stehen die Sync-Funktionen immer zur Verfügung (bei meinem Clie heisst das, dass ich nur noch auf den Hotsync-Knopf der Dockingstation drücken muss um die Synchronisierung zu starten).

Zu dem Problem mit dem USB-Stick:
Am besten du richtest dir einen Mount-Daemon ein, der dir hotplug-Devices automatisch mountet. Dann legst du ein Script im Autostart (oder als Cron) ab, das (sofern der USB-Stick gemountet ist) das entsprechende Verzeichnis (dein Mountpoint für den Stick) im Konqueror öffnet. Danach muss dann natürlich dieses "autorun"-Script dein Datensicherungs-Script aufrufen. Dass du das per Kernel-Event nur mit einem bestimmten Stick machen kannst, glaube ich nicht, da eine Kernel-Meldung für USB-Stick etwa wie folgt aussieht:

Code:
Aug  8 17:02:42 localhost kernel: usb 1-1: new full speed USB device using uhci_hcd and address 2
Aug  8 17:02:45 localhost kernel: SCSI subsystem initialized
Aug  8 17:02:45 localhost kernel: Initializing USB Mass Storage driver...
Aug  8 17:02:45 localhost kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Aug  8 17:02:45 localhost kernel: usbcore: registered new driver usb-storage
Aug  8 17:02:45 localhost kernel: USB Mass Storage support registered.
Aug  8 17:02:45 localhost usb.agent[13391]:      usb-storage: loaded successfully
Aug  8 17:02:50 localhost kernel:   Vendor: TOSHIBA   Model: MK2004GAL         Rev: 0811
Aug  8 17:02:50 localhost kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
Aug  8 17:02:51 localhost kernel: SCSI device sda: 39063024 512-byte hdwr sectors (20000 MB)
Aug  8 17:02:51 localhost kernel: SCSI device sda: 39063024 512-byte hdwr sectors (20000 MB)
Aug  8 17:02:51 localhost scsi.agent[13545]:      sd_mod: loaded sucessfully
Aug  8 17:02:51 localhost kernel:  /dev/scsi/host0/bus0/target0/lun0: unknown partition table
Aug  8 17:02:51 localhost kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0

Du müsstest also aus der Meldung, die beim Laden von usbstorage ausgelöst wird, entsprechend Vendor und Model greppen und erst bei richtigem Vendor und richtigem Modell dein Backup-Script auslösen.
Die einfachste Lösung wäre also, einfach ein kleines Cron-Script zu bauen, dass regelmässig deine /var/log/messages auf einen neuen Eintrag mit der Form wie oben dargestellt überprüft und anhand der Vendor- und Model-ID entscheidet, ob das Device gemountet werden soll oder nicht und ob das Sicherungsscript gestartet werden soll oder nicht.

Ein besserer Weg würde mir jetzt nicht einfallen, aber auf diese Weise wäre es zumindest realisierbar.
Vielleicht hat ja auch noch jemand eine bessere/effizientere Idee. :)
 
Hallo,

danke für das Brainstorming.
Zurück zu dem Palm. Was mein eigentlicher, vorrangiger Wunsch ist...


Bei KDE Start automatisch den kpilot zu starten ist mir zu doof. Ich will beim Start möglichst wenig zusätzliche Programme hochfahren.

Kann mir denn jemand sagen, wie ich die Kernelmeldungen "überwachen" kann, so das beim Einstöpseln des Gerätes automatisch kpilot gestartet werden kann??
Wenn der ausschließliche Weg über Cron und entsprechende Scripts geht, die /var/log/messages auszulesen, dann werde ich diesen wohl nehmen müssen. Ich hoffe aber, es gibt noch eine elegantere Möglichkeit.

DANKE!

Gruß,
hiasman
 
Sali Hiasman

Nene, da musste ned cron nehmen. Es gibt Überwachungstools die sofort reagieren wenn ein Event auftritt - dafür läuft dieser Prozess natürlich ständig im Hintergrund. Ich dachte logwatch wär so eins, bin mir aber nicht sicher!

Gruss
Joel
 
@Joel
tr0nix schrieb:
Es gibt Überwachungstools die sofort reagieren wenn ein Event auftritt - dafür läuft dieser Prozess natürlich ständig im Hintergrund. Ich dachte logwatch wär so eins, bin mir aber nicht sicher!

Hallo,

danke. Ich habe etwas recherchiert; logwatch wertet Logfiles aus und mailt sie dann an einen User... Mehr macht das tool scheinbar nicht. Trotzdem danke.

Gruß,
hiasman
 
Zurück
Oben