Upstart-Skript aufrufen (für den eingesteckten USB-Laufwerk)
Ich weiß, dass Ubuntu (und Fedora) verwendet Upstart statt des klassischen System-V-init-daemon (SysVinit).
Ich würde gerne wissen, wie zu erkennen, wenn ein USB-Laufwerk eingelegt wurde, montieren Sie ihn und kopieren Sie einige Dateien in es. Ich möchte Schnösel zu nennen, meine eigenen Skript.
Wenn es möglich ist würde ich wie Upstart rufen Sie das Skript für eine bestimmten USB-Laufwerk, so dass ich bekommen würde, die normale Funktionalität für jedes USB-Laufwerk, außer mein "instant backup" USB-Laufwerk.
Wenn Upstart könnte senden Sie das USB-Laufwerk Identifikations-string als argument, um mein Drehbuch-ich denke, das wäre die ideale Lösung, wie ich in der Lage wäre zu haben, der id-string in mein Skript und möglicherweise könnten das Skript handle-zwei USB-Laufwerke, ohne viel zu ändern.
Und als Randbemerkung, wissen Sie, jedes andere system, außer Upstart übernimmt die USB-Laufwerke, Netzwerk gemounteten Datei-Systeme und so auf eine nette Art? (Als SysVinit scheint nicht zu.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
upstart
scheint nicht zu kommen mit "usb-Gerät wurde angeschlossen" - Signale aus der box. Der Fokus war bisher so ziemlich genau das gleiche wie init, und der "cool beworbenen features" sind in der Zukunft.Aus dem Fedora-wiki: "...immer Emporkömmling, der sich selbst jetzt, obwohl es nur funktionieren, als SysV tut, wird es uns ermöglichen, zu beginnen, die einen reibungslosen übergang auf dieses Modell."
Glücklicherweise können Sie implementieren, die Zukunft selbst, indem Sie mit udev ein Skript ausführen, um senden Sie Ihre custom-upstart-signal-Schnösel nennen kann Ihr backup-Skript. Du könntest auch noch udev rufen Sie Ihre backup-Skript direkt.
udev
bereits eine einfache Möglichkeit zum ausführen von Skripts, wenn Geräte an-und abgesteckt. Sehen benennen Sie Ihre usb-Festplatte Gerät-Namen mit der udev-Regeln. Auf meinem system, ich hätte zu verwendenudevadm monitor --env
anstatt das tutorial istudevmonitor --env
. Nachdem Sie das tutorial, erstellen Sie eine andere udev-Regel wie diese:Ersetzen
ID_SERIAL_SHORT
mit Ihrem Gerät die eigentliche id, und$env{NAME}
mit dem, was udev-environment-variable(s) dein Skript muss das backup-Gerät. Sie müssen möglicherweise im hintergrund das Skript zu blockieren zu vermeiden udev.Wenn Sie verwenden möchten, upstart, könnten Sie die udev-Regel ausgeführt
/sbin/initctl emit back-it-up VARIABLE=$env{VARIABLE} ...
und dann ein Skript schreiben, in/etc/event.d
beginnend mit der Zeilestart on back-it-up
.Siehe auch Wie kann ich listen für "usb Gerät eingesteckt" Ereignisse in Linux, Python? für die Hinweise, das gleiche tun mit DBus. DBus könnte bequemer sein, wenn Sie möchten, dass der Benutzer eingeloggt ist, führen Sie eine usermode "- Uhr für backup-Laufwerk" daemon.
back-it-up VARIABLE=...
Ereignis, könnten Sie emittieren eine mehr Allgemeineudev SUBSYSTEM=$SUBSYSTEM ID_SERIAL_SHORT=$ID_SERIAL_SHORT
Veranstaltung. Dann den Aufsteiger beginnen, auf der Linie wirdstart on udev SUBSYSTEM=block ID_SERIAL_SHORT=101...
In Ubuntu 9.10 und neuer Emporkömmling, der hat einige udev-Funktionen über den
upstart-udev-bridge
service.Ich Liebe, wie einfach und elegant Schnösel werden kann. Aber eine DBus-Lösung wäre besser, wenn weniger elegant. Mit DBus-Lösung können Sie pop-up-Benachrichtigungen an den Benutzer und eine einfache Kontrolle durch die Nutzer.