Ich möchte mittels Udev eine eigene Units starten, da ich auf der Ubuntuusers wiki (udev) Seite nichts gefunden habe, habe ich im Netz folgendes gefunden:
ENV{SYSTEMD_WANTS}="mein.service
Ist das fachlich ok?
Anmeldungsdatum: Beiträge: 729 |
Ich möchte mittels Udev eine eigene Units starten, da ich auf der Ubuntuusers wiki (udev) Seite nichts gefunden habe, habe ich im Netz folgendes gefunden: ENV{SYSTEMD_WANTS}="mein.service Ist das fachlich ok? |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8693 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 729 |
Hab mir die Seite schon paar mal durchgelesen, leider finde ich zu meiner Frage nicht den richtigen Abschnitt. Ist mein Vorschlag von oben richtig? |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8616 Wohnort: Münster |
Nein. Rein syntaktisch fehlt das schließende Anführungszeichen. Semantisch kann man mit ENV{key} Eigenschaften des Gerätes (device property value) abfragen oder auch setzen. Üblicherweise benutzt man aber den Operator += statt =. Das startet aber kein Programm oder systemd-Unit. Bestenfalls gibt es eine systemd-Unit, welche die Eigenschaftes des Gerätes prüft und darauf reagiert. Die Kommunikation zwischen udev als Teil von systemd und systemd ist zickig: Oft verirren sich Anwender und Programmierer von systemd in der unbarmherzigen und vermutlich endlosen Quotierwüste. |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8693 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 729 |
Sorry habe das Anführungsstrich vergessen, in meiner UDEV steht es mit da. Aber das funktioniert aber, heißt USB Stick wird eingesteckt und die Units wird gestartet. Wie macht man das korrekt? Mit "Run+=..."? |
(Themenstarter)
Anmeldungsdatum: Beiträge: 729 |
Ich stelle, nochmal die Frage, wie muss die UDEV aussehen, damit ich per Udev eine UNIT starten kann? |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8616 Wohnort: Münster |
udev ist nicht dafür vorgesehen, eine systemd-unit zu starten. Du hast diese Möglichkeiten:
Deine Frage ist in der gestellten Allgemeinheit nicht konkret zu beantworten. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 729 |
Konkret geht es darum, wenn ich ein USB Stick/Festplatte einstecke soll es ein Python Script starten, das geht aber nur über Units, weil das Python Script "länger dauert" und sich dann gleich beendet wenn ich es in Udev über "run+=" starte. Deshalb möchte ich damit eine Units starten. Mein Vorschlag von oben hat aber 1 Jahr lang funktioniert, warum ist der so extrem falsch? |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8616 Wohnort: Münster |
Das ist doch prima! Was also ist Dein Problem?
Er entspricht meiner Möglichkeit 2 und ist daher grundsätzlich überhaupt nicht falsch. Meine Beschreibungen waren „tricky“ und „zickig“, aber wenn es bei Dir funktioniert, spricht doch nichts dagegen. Was also ist Dein Problem? |
(Themenstarter)
Anmeldungsdatum: Beiträge: 729 |
Problem habe ich keins, nur das war nochmal eine Bestätigung,dass es nicht falsch ist, denn wenn ich etwas mache, dann sollte es schon richtig sein. Vielen Dank. Edit: habe in dem Zusammenhang herausgefunden, dass wenn man über UDEV ein Script startet, dass es dann nur 90 Sekunden läuft, dann wird es automatisch beendet und die UDEV wieder freigegeben. Jedenfalls bei Raspbian ist das so. Deshalb kann ich kein Script über UDEV starten was länger wie 90 Sekunden läuft. Alles bisschen kompliziert... |
Projektleitung
Anmeldungsdatum: Beiträge: 12822 |
Überraschenderweise gibt es auch in der sehr logiklastigen IT oft Situationen, in denen es nicht das eine richtige oder falsche Vorgehen gibt. Oftmals hängt es von mehreren Faktoren ab und oft ist es auch egal, welche der "richtigen" Lösungen man wählt.
Du kannst immer noch forken bzw. Dein Skript dämonisieren. Da gibt es bestimmt auch etwas für Python-Programme. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 729 |
Ok klingt interessant. Eventuell hat jemand eine Idee. |
Projektleitung
Anmeldungsdatum: Beiträge: 12822 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 729 |
Vielen Dank. Also könnte ich mit einen "daemonize" Script ein anderes Python Script starten und es läuft dann im Hintergrund, oder wie muss man das verstehen? |