StefanP
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
ChickenLipsRfun2eat schrieb: Okay. Ausführlichere Informationen findest du bspw. unter systemd/User Units. Als Script unter /usr/ wäre das nur ratsam, wenn du was systemweites ausführen möchtest. xmodmap ist ja pro Benutzer, da böte sich besagte Unit an.
OK - ich merke, DAS wird ein neues Thema - denn: Bei meiner Tastatur ist das Komma in dem Ziffernblock leider falsch belegt und liefert immer die englische Version "Punkt". Das ist SHER UNGÜNSTIG weil mein OnlineBankingProgramm eine meiner letzten Überweisungen verhundertfacht ( 32,67 ⇒ 3276,00 EUR) hatte und ich nur mit großer Mühe die tatsächliche Überweisung verhindern konnte. DAS MUSS BEHOBEN WERDEN !!! Außerdem möchte ich die "Num"-Taste deaktivieren (bzw. auf Shift+Num verlegen) da die hier so ungünstig liegt, dass sie aus Versehen ständig umgeschaltet, drittens auch die "CapsShift" deaktivieren und - wenn DAS alles klappt eine Taste definieren, damit mein Touchpad per Taste aktiviert/deaktiviert werden kann - denn es funkt ständig in meiner Tastatureingaben hinein. Leider habe ich bisher keinen Weg gefunden, das hier auf meinem System DAUERHAFT und IMMER einzurichten. Der derzeit einzige funktionierende Weg ist, dass ich nach jedem Neustart und leider auch nach jedem Aufwachen im Terminal den Befehl "xmodmap ~/.Xmodmap" absetze. DAS wollte ich automatisieren. Und - da das Python-Script inzwischen funktioniert und zuverlässig die Stomversorgung bei 75% Akkuladung ausschaltet und bei 30% wieder einschaltet - hätte ich dieses Script auch einen Autostart verpasst.... Ich weiß - ES IST GEBASTEL ... denn ich bekomme das eigentliche Problem nicht in den Griff ... es ist aber derzeit die Einzige Möglichkeit es hier auf meinem Gerät zu lösen... und es soll ruhig Systemweit sein, denn es ist ausschließlich MEIN Laptop... So - habe fertig (gejammert) .... Gruß, Stefan PS. vielleicht sollte einer der ADMIN die letzten Beiträge in einen eigenen Thread zu verschieben - hat ja nix mehr mit dem Ursprungsthema zu tun ...
Ich weiß nur nicht WIE man das veranlasst / tut...☹
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
StefanP schrieb: PS. vielleicht sollte einer der ADMIN die letzten Beiträge in einen eigenen Thread zu verschieben - hat ja nix mehr mit dem Ursprungsthema zu tun ...
Ich weiß nur nicht WIE man das veranlasst / tut...☹
Dafür gibt es die "Melden"-Funktion auf jeder Seite. Ganz oben und/oder unten.
|
trollsportverein
Anmeldungsdatum: 21. Oktober 2010
Beiträge: 3417
|
StefanP schrieb:
Leider habe ich bisher keinen Weg gefunden, das hier auf meinem System DAUERHAFT und IMMER einzurichten. Der derzeit einzige funktionierende Weg ist, dass ich nach jedem Neustart und leider auch nach jedem Aufwachen im Terminal den Befehl "xmodmap ~/.Xmodmap" absetze. DAS wollte ich automatisieren.
Schau mal hier: Bluetooth Kopfhörer reconnect mit Automagie bei Reboot und Sleep. Der Automagie Ansatz für Start, Reboot und Sleep-Modus sollte eigentlich auch mit dem Befehl absetzen "xmodmap ~/.Xmodmap" machbar sein.
|
StefanP
(Themenstarter)
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
trollsportverein schrieb: [...] Schau mal hier: Bluetooth Kopfhörer reconnect mit Automagie bei Reboot und Sleep. Der Automagie Ansatz für Start, Reboot und Sleep-Modus sollte eigentlich auch mit dem Befehl absetzen "xmodmap ~/.Xmodmap" machbar sein.
SUPER - danke, ich werde mir das mal genauer ansehen 👍 EDIT:
bekomme ich leider nicht zum laufen .... UND... da eine der Tasten tatsächlich falsch belegt ist: .... WIE/WO kann ich die Tastenbelegung DAUERHAFT + SYSTEMWEIT verändern/korrigieren? ... Ich brauche jetzt erst einmal ne schnelle Lösung... Danach kann ich ja weitersuchen... Herzlichen Gruß + DANKE
Stefan
|
StefanP
(Themenstarter)
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
hmmmm....
also ich habe mal versucht, DAS ..... [...] Schau mal hier: Bluetooth Kopfhörer reconnect mit Automagie bei Reboot und Sleep. Der Automagie Ansatz für Start, Reboot und Sleep-Modus sollte eigentlich auch mit dem Befehl absetzen "xmodmap ~/.Xmodmap" machbar sein.
umzusetzen .... es klappt aber nicht! Vielleicht mag mal einer sich das ansehen: ich habe folgendes gemacht: 1) das Script "Xmodmap.sh" angelegt, es ausführbar gemacht und mit "/bin/bash ./Xmodmap.sh" getestet := es funktioniert:
#!/bin/sh
sleep 10 && xmodmap home/stefan/.Xmodmap 2) unter "/lib/systemd/system-sleep/" das Script "example.sh" kopiert und als "example-SteOnWakeup.sh" angelegt + ausführbar gemacht. Wie man dieses Script testen könnte habe ich nicht gefunden ....
#!/bin/sh
case $1/$2 in
pre/*)
echo "Going to $2..."
;;
post/*)
echo "Waking up from $2..."
# 28.03.2020_Ste: Umstellung/Korrektur der Tastaturbelegung:
/bin/bash /home/stefan/.local/bin/Xmodmap.sh
;;
esac ABER - leider - hat es überhaupt keine Wirkung - weder nach einem Neustart noch einem Wakeup ... egal wie...
Kann mir jemand weiterhelfen? Herzliche Grüße und GesundheitsWünsche!
Stefan
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Ist das Script ausführbar? Laut man systemd-sleep werden zwei Argumente übergeben. Das von dir abgefangene pre und post, so wie die Aktion (suspend, hybrid-sleep,…). Sollte also so passen. Du könntest aber zu Testzwecken mitloggen und vor der Argumentverarbeitung ein /usr/bin/logger Argumente $1 $2 o.ä. einsetzen. Zum einen siehst du dann, ob das Script ausgeführt wird, zum anderen ob die Argumentabfrage funktioniert. Ich würde auch versuchen das als systemd/User Unit umzusetzen, damit es auch eine Benutzerumgebung gibt und nicht systemweit. Wie genau man sleep abfängt, müsste ich aber auch erst mal recherchieren, in Zeiten von SSD nutze ich gar keine sleep-modes mehr.
|
StefanP
(Themenstarter)
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
ChickenLipsRfun2eat schrieb: Hallo! Ist das Script ausführbar?
soweit ich das beurteilen kann JA (habe chmod +x ... ausgeführt / im Dateiexplorer unter Eigenschaften / Zugriffsrechte ist bei Ausführen ein Haken)
Laut man systemd-sleep werden zwei Argumente übergeben. Das von dir abgefangene pre und post, so wie die Aktion (suspend, hybrid-sleep,…). Sollte also so passen.
Du könntest aber zu Testzwecken mitloggen und vor der Argumentverarbeitung ein /usr/bin/logger Argumente $1 $2 o.ä. einsetzen. Zum einen siehst du dann, ob das Script ausgeführt wird, zum anderen ob die Argumentabfrage funktioniert.
wo (genau) gehört die MITLOG-Anweisung hin und wohin wird dann das LOG geschrieben? Habe mal unter "logger" gesucht hmmmm ... Ginge es auch mit "echo $1 $2 >> {Pfad zur LogDatei}"? (Das würde ich dann verstehen)
Ich würde auch versuchen das als systemd/User Unit umzusetzen, damit es auch eine Benutzerumgebung gibt und nicht systemweit. Wie genau man sleep abfängt, müsste ich aber auch erst mal recherchieren, in Zeiten von SSD nutze ich gar keine sleep-modes mehr.
DAS mit der systemd/User Unit habe ich probiert - bin aber hoffnungslos stecken geblieben - die Wiki sind ja super toll - blos für mich einfach deutlich zu hoch. UND ... es geht mir darum ,dass auch nach einem WiederAufwachen die Tastatur "gerichtet" wird - DAS macht es im Moment nicht... zB. woran erkennt "systemd", dass es in "systemd/system-sleep" ein Script gibt, das es ausführen soll? .. muss da nicht irgend etwas "angemeldet" werden?
und bei "systemd - timer - units" bin ich dann völlig ausgestiegen .... tja - s'ist halt alles nicht ganz so einfach .... herzlichen Gruß, Stefan
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
StefanP schrieb: soweit ich das beurteilen kann JA
ls -lha /pfad/zum/script → wenn x gesetzt ist, ist es ausführbar. Siehe Rechte (Jaja, das Wiki ;D)
wo (genau) gehört die MITLOG-Anweisung hin und wohin wird dann das LOG geschrieben? Habe mal unter "logger" gesucht hmmmm ...
Der logger logt ins Systemlog, die Meldungen siehst du also mit bspw. journalctl -xe . Zum Test | /usr/bin/logger Haaaallloooo
journalctl -xe
|
Also würde ich die Anweisung direkt unterhalb der Shebang (#!/bin/bash) setzen, bevor ich irgendwas abfrage.
Ginge es auch mit "echo $1 $2 >> {Pfad zur LogDatei}"? (Das würde ich dann verstehen)
Ginge auch, ja. Wenn du da dann Schreib- und später Leserechte hast, das Verzeichnis eingebunden ist, etc. pp. Daher ist logger eine stabilere Lösung.
DAS mit der systemd/User Unit habe ich probiert - bin aber hoffnungslos stecken geblieben - die Wiki sind ja super toll - blos für mich einfach deutlich zu hoch.
Dann hilf doch das zu verbessern und teile mit, an welcher Stelle du feststeckst oder den Faden verlierst. Dann kann man den Artikel dahingehend anpassen, dass er besser verständlich wird.
UND ... es geht mir darum ,dass auch nach einem WiederAufwachen die Tastatur "gerichtet" wird - DAS macht es im Moment nicht...
Genau deswegen würde ich das als User-Unit machen. Stell dir ein System mit 20 Benutzern vor, wenn du irgendwas™ am System machst. Das hilft meistens zu entscheiden, ob etwas systemweit eingerichtet werden muss/soll/kann oder nicht und wo die entsprechenden Dateien liegen. Wenn du aus dem sleep-Status zurückkommst, wird ja zunächst das System wiederhergestellt, da gibt es dann noch keinen Stefan. Ich gehe also davon aus, dass dein Script zwar funktioniert, aber ins "nichts" arbeitet. Wenn dann systemd die user1000-Umgebung startet, ist dein Script schon abgearbeitet und es wirkt wie vorher. Um jetzt genauer zu gucken wie das mit systemd-sleep funktioniert, musst du etwas warten. Meine Kubuntu-Installation ist erst heute Abend in meiner "Spielzeit" dran. Da kann ich das dann ausprobieren.
zB. woran erkennt "systemd", dass es in "systemd/system-sleep" ein Script gibt, das es ausführen soll? .. muss da nicht irgend etwas "angemeldet" werden?
und bei "systemd - timer - units" bin ich dann völlig ausgestiegen ....
Da musst du gar nichts einstellen. Systemd führt einfach stur alle Scripte parallel aus, die da drinliegen. Das Script selbst ist dafür verantwortlich nur im richtigen Kontext ausgeführt zu werden (Was du an den o.g. Argumenten nachvollziehen kannst.)
tja - s'ist halt alles nicht ganz so einfach ....
Das ist richtig ☺ Also einfach schon - nur mega viel Input. Ich verliere auch gerne den Überblick bei sowas und verheddere mich in Details. Du bist damit also nicht alleine 😀
|
StefanP
(Themenstarter)
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
ChickenLipsRfun2eat schrieb: [...] ls -lha /pfad/zum/script → wenn x gesetzt ist, ist es ausführbar. Siehe Rechte (Jaja, das Wiki ;D)
:~$ ls -lha /lib/systemd/system-sleep/example-SteOnWakeup-2020-03-28.sh
-rwxr-xr-x 1 root root 450 Mär 31 15:48 /lib/systemd/system-sleep/example-SteOnWakeup-2020-03-28.sh
sieht also gut aus:-)
[...] Der logger logt ins Systemlog, die Meldungen siehst du also mit bspw. journalctl -xe . Zum Test | /usr/bin/logger Haaaallloooo
journalctl -xe
|
Bei mir sieht es jetzt SO aus: ~$ /usr/bin/logger $"loc-Xmodmap §1:"$1$" §2:"$2
~$ journalctl -xe
[...]
Mär 31 16:01:06 SteLT05 stefan[10761]: loc-Xmodmap §1: §2:
funktioniert also auch ...
[...] Dann hilf doch das zu verbessern und teile mit, an welcher Stelle du feststeckst oder den Faden verlierst. Dann kann man den Artikel dahingehend anpassen, dass er besser verständlich wird.
DAS mache ich gerne, wenn ich dann irgendwann mal verstehe, wie es genau funktioniert... Momentan ist es ein Stochern im Heuhaufen ... UND: ich bin nicht so gut im Schreiben von Wiki's - nur das "schlauDaherReden"... DA BIN ICH GUT 😀 Momentan bin ich einfach von dem "VIEL" völlig erschlagen ... verliere den Überblick und "bastle" dann mit vielen Fragmenten herum, ohne zu überblicken, was ich (genau) da eigentlich tue..... DAS führt leider dann auch dazu, dass es immer mehr "Leichen" im PC-Keller gibt ... von denen ich dann nix mehr weiß ... (siehe die letzte Excursion mit "CUPS" ☹ 😀)
UND ... es geht mir darum ,dass auch nach einem WiederAufwachen die Tastatur "gerichtet" wird - DAS macht es im Moment nicht...
Genau deswegen würde ich das als User-Unit machen. Stell dir ein System mit 20 Benutzern vor, wenn du irgendwas™ am System machst. Das hilft meistens zu entscheiden, ob etwas systemweit eingerichtet werden muss/soll/kann oder nicht und wo die entsprechenden Dateien liegen. Wenn du aus dem sleep-Status zurückkommst, wird ja zunächst das System wiederhergestellt, da gibt es dann noch keinen Stefan. Ich gehe also davon aus, dass dein Script zwar funktioniert, aber ins "nichts" arbeitet. Wenn dann systemd die user1000-Umgebung startet, ist dein Script schon abgearbeitet und es wirkt wie vorher.
Würde da ein längeres sleep etwas helfen .... wobei- das iat auch nur "fischen im Trüben" - man müsste den Moment des Stefan ist da-Moment im Script abfangen können... ABER - DAS übersteigt nun wirklich bei Weitem mein Wissen/Können ...
Um jetzt genauer zu gucken wie das mit systemd-sleep funktioniert, musst du etwas warten. Meine Kubuntu-Installation ist erst heute Abend in meiner "Spielzeit" dran. Da kann ich das dann ausprobieren.
Dann bis heute Abend .... macht Spaß mit dir zu kommunizieren ... DANKE DAFÜR!
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
StefanP schrieb: DAS mache ich gerne, wenn ich dann irgendwann mal verstehe, wie es genau funktioniert... Momentan ist es ein Stochern im Heuhaufen ...
Nee, dann ist es zu spät. Du musst ja dann darauf hinweisen, wenn du es nicht verstehst. Im Nachhinein sind die Artikel alle verständlich. Und keine Sorge, die Wiki-Mods korrigieren Formulierungen schon, wenn sie daneben sind. Zu jedem Wiki-Artikel gibt es auch eine Diskussion (Reiter oben rechts, wo auch die Revisionen, etc. sind). Da kannst du auch Verbesserungsvorschläge anbringen, wenn du dich nicht traust den Artikel zu ändern.
Momentan bin ich einfach von dem "VIEL" völlig erschlagen ... verliere den Überblick und "bastle" dann mit vielen Fragmenten herum, ohne zu überblicken, was ich (genau) da eigentlich tue.....
Dann mach dir eine Liste, wenn es zu viel wird. Und dann schön eins nach dem anderen angehen.
Würde da ein längeres sleep etwas helfen
Keine Ahnung. Möglich. Wäre mir aber zu unsicher. Wenn dann mal irgend eine Unit hängt, fällt das Kartenhaus in sich zusammen.
Dann bis heute Abend…
Genaugenommen jetzt. Kubuntu 20.04 ist aktualisiert, systemd-sleep funktioniert da out-of-the-box und die Unit ist nur ein Klacks. Und ich habe sogar was dazugelernt. Gibt nen neuen Modus namens freeze. Daher ausnahmsweise mal eine komplette Anleitung - trotzdem mit der Bitte jeden Schritt zu verstehen ☺ Im Terminal getippert:
| kubuntu@x220:~$ systemctl --user edit --full --force myWakeUpUnit.service
kubuntu@x220:~$ vim lala.bash
kubuntu@x220:~$ chmod 700 lala.bash
kubuntu@x220:~$ systemctl --user enable --now myWakeUpUnit
Created symlink /home/kubuntu/.config/systemd/user/suspend.target.wants/myWakeUpUnit.service → /home/kubuntu/.config/systemd/user/myWakeUpUnit.service.
kubuntu@x220:~$ systemctl suspend
kubuntu@x220:~$ journalctl -xe
|
Die Unit: kubuntu@x220:~$ systemctl --user cat myWakeUpUnit
# /home/kubuntu/.config/systemd/user/myWakeUpUnit.service
[Unit]
Description=Aufwachphase
After=suspend.target
[Service]
ExecStart=/home/kubuntu/lala.bash
[Install]
WantedBy=suspend.target
kubuntu@x220:~$ Funktioniert. Die lala.bash enthielt lediglich einen logger-Eintrag, daher spare ich mir die hier. Übrigens siehst du hier, wie eine User-Unit funktioniert. Genau so wie die anderen auch, nur mit --user beim Aufruf. Unterschiede gibt es dann bei der Umgebung, aber das ist ne andere Baustelle und noch ein Artikel für dich: Umgebungsvariable btw: Deinen Dank habe ich angenommen ☺
|
StefanP
(Themenstarter)
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
ChickenLipsRfun2eat schrieb: StefanP schrieb: DAS mache ich gerne, wenn ich dann irgendwann mal verstehe, wie es genau funktioniert... Momentan ist es ein Stochern im Heuhaufen ...
Nee, dann ist es zu spät. Du musst ja dann darauf hinweisen, wenn du es nicht verstehst. Im Nachhinein sind die Artikel alle verständlich. Und keine Sorge, die Wiki-Mods korrigieren Formulierungen schon, wenn sie daneben sind. Zu jedem Wiki-Artikel gibt es auch eine Diskussion (Reiter oben rechts, wo auch die Revisionen, etc. sind). Da kannst du auch Verbesserungsvorschläge anbringen, wenn du dich nicht traust den Artikel zu ändern.
GUT .... dann fange ich damit mal an:
als erstes habe ich mir das wiki von "systemd" angesehen ...
und bin gleich beim 2. Absatz ins Trudeln gekommen: FRAGE: ist der Bereich "Bei Ubuntu ist es der zweite Ansatz, das ......" wirklich für das Verständnis wichtig (am Anfang weiß man ja nie, ob es nicht doch relevant sein könnte ... oder geht es da mehr um die "Historie"? Dann sollte es auch als solches überschrieben sein ... Weil - ich suche ja (im ersten Ansatz) nach einer Lösung für ein Problem Dann ... kommt der Abschnitt "Verwaltung" ... und dann gleich "Kommandozeile" .... FRAGE: gibt es auch andere Werkzeuge für systemd?
Gleich danach wird beschrieben, dass "systemctl" der Verwaltung von "systemd" dient ... Für mich (als Laie) ist das nicht gleichbedeutend mit "damit erstellst du die 'unit'" ... und dann kommen viele Einzelaspekte zu systemd ... ich war aber erst einmal auf der Suche nach einem Überblick ...
So hätte es mir sicherlich geholfen, wenn unter der Überschrift "Unit" erst einmal erklärt worden wäre, was für Arten von Units es gibt und für welche Aufgaben sie jeweils gedacht/zuständig sind .... (kann sein, dass ich da an meine Begrenztheit gekommen bin, aber du wolltest es ja wissen ☺) Ich habe da etwas verwirrt und ziellos mich durch die Auflistung der für mich erst einmal unverständlichen Einzelaspekte durchgelesen und ... keine Struktur in meine Gedanken bekommen. Also habe ich dann in diesem und jenem Link weitergesucht ... und habe bald den Überblick restlos verloren und bin ins "probieren" übergegangen ... Und da das VERSTEHEN fehlte (ich bin kein EDV-Profi) hab ich nicht überblickt, was ich da gerade tue und welche Risiken dahinter stehen könnten. MIR hätte vermutlich ganz oben - unter "Units" es gut getan, ein einfaches Beispiel - so wie deines "unten" - zu haben und daran mein Verstehen zu entwickeln.... Ich könnte mir vorstellen, dass du nun die Augen verdrehst ... aber DAS waren meine Gedankenwege .. und DAS wolltest du ja auch rückgekoppelt bekommen. nun zu deiner Anleitung (Vielen Dank dafür): systemctl --user edit --full --force myWakeUpUnit.service brachte mich sofort ins schleudern: WAS ist nun der Inhalt von "myWakeUpUnit.service"? DAS, was du unter "die Unit" geschrieben hast? und wenn ich das dort eintrage und speichern will, dann steht da nicht "myWakeUpUnit.service" als Zieldatei sondern ".."... /.#myWakeUpUnit.service7cb898344980db74" ... WOHIN soll ich die Datei jetzt speichern? Und - woher weißt du diese Kombination der Befehle? Selbst wenn ich mir jetzt - mit deiner Nachhilfe - systemctl durchlese - ich fände NIE diese Zusammensetzung .... tja ... ist halt doch SEHR VIEL, und sehr verwirrend und ... Um also weiter zu kommen brauch ich leider doch noch mehr Input von dir ... tut mir leid ...
Alles Andere wäre nur ein herumprobieren und hätte mit "Verstehen wenig zu tun" Herzliche Grüße
Stefan PS - ist doch recht viel geworden ... soll das wirklich HIER her?
|
StefanP
(Themenstarter)
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
so .. ich habe "myWakeUpUnit.service" mit "leafpad" (mein bevorzugter Editor) angelegt und auf mein (funktionierendes) Xmodmap.sh verbunden.. und .... ES FUNKTIONIERT !!!! ... SUPER!!!! ABER: es steht im Verzeichnis "~/.config/systemd/user/..." und nicht in "/lib/systemd/system-sleep/" ... wie es hier: Power_management beschrieben wurde...... Warum? Und - die dort beschriebene Routine hätte den Vorteil, dass man auch/zusätzlich Funktionen einbinden könnte, die VOR dem "Abschied von Stefan" erfolgen sollen ... Wie macht man das in deiner Methode? Nächste Frage: dein "Script" hat die Extension ".service" die dort endet auf ".sh" Hat DAS eine Bedeutung und wo finde ich die Erläuterungen dazu? Bitte nicht falsch verstehen - ich bin SEHR froh, dass es nun funktioniert .... aber ich möchte gerne auch herausfinden, warum der andere Weg nicht funktioniert hat... Herzliche Grüße aus meiner Quarantäne in München ins ferne Solingen, Stefan PS - ich markiere den Beitrag mal als gelöst .... wenn du Lust hast können wir ja trotzdem hier gerne weiter kommunizieren ...
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Na, ich fange mal unten an:
StefanP schrieb: PS - ist doch recht viel geworden ... soll das wirklich HIER her?
Nein. Fragen/Anmerkungen die auf einen Artikel abzielen sind am besten in der dortigen Diskussion aufgehoben. Hier geht das unter und führt auch zu weit von deinem eigentlichen Thema weg. Und: Ich habe nicht einmal mit den Augen gerollt, überspringe aber den Wiki-Teil an dieser Stelle (habs mir rauskopiert und lese gleich systemd dagegen). systemd ist halt ein seeehr weitreichendes Werkzeug (und hat dafür auch viel Kritik bekommen, weil es von der Grundidee 1 Tool = 1 Aufgabe sehr weit weg führt).
nun zu deiner Anleitung (Vielen Dank dafür): systemctl --user edit --full --force myWakeUpUnit.service brachte mich sofort ins schleudern:
Hab mir noch überlegt es zu kommentieren ☺ Aber dann hole ich das jetzt nach: systemctl --user edit --full --force myWakeUpUnit.service liest sich so:
"systemd-Verwaltung, starte im Benutzer-Modus und öffne die Datei 'myWakeUpUnit.service' komplett. Falls es sie nicht gibt, erstelle sie bitte."
--user → im Benutzerkontext = UserUnit edit --full : normalerweise öffnet systemd eine leere Datei, in der man anhängen kann. Ich will aber das bereits bestehende mit angezeigt bekommen, also --full dazu --force bedeutet erzwingen. Also auch wenn es die Unit nicht gibt, öffnet er sie (also eine neue, leere, temporäre Datei)
Um den Speichervorgang musst du dir keine Gedanken machen. Nach Abschluss des Editierens kopiert systemd die Datei dahin, wo sie gefunden wird.
WAS ist nun der Inhalt von "myWakeUpUnit.service"? DAS, was du unter "die Unit" geschrieben hast?
Ja. Ich habe mittels systemd cat die fertige Unit ausgegeben (siehe cat).
Die Unit selbst sieht also im Editor so aus: [Unit]
Description=Aufwachphase
After=suspend.target
[Service]
ExecStart=/home/kubuntu/lala.bash
[Install]
WantedBy=suspend.target Also: Falls es zur sleep-unit noch Fragen gibt, hier rein. Für unser offtopic → offtopic-zu-diversen-themen.
|
StefanP
(Themenstarter)
Anmeldungsdatum: 26. Januar 2008
Beiträge: 193
Wohnort: München
|
Also: Falls es zur sleep-unit noch Fragen gibt, hier rein.
JA - nun habe ich die Funktion "post": "tue etwas nach dem WakeUp" und es klappt.... Bei der Beschreibung zu "systemd/system-sleep" gibt es auch die Funktion "pre" also: "tue etwas VOR dem Abschied" (Einschlafen, Herunterfahren etc.) : Gibt es DAS in "deiner Version" auch? und zu deiner Erläuterung von "systemd": Und: Ich habe nicht einmal mit den Augen gerollt, überspringe aber den Wiki-Teil an dieser Stelle (habs mir rauskopiert und lese gleich systemd dagegen). systemd ist halt ein seeehr weitreichendes Werkzeug (und hat dafür auch viel Kritik bekommen, weil es von der Grundidee 1 Tool = 1 Aufgabe sehr weit weg führt).
Dann wäre es gut, wenn die Struktur ein "hier die Anfänger" und "dort die Profies und die Lernbegierigen" hätte .... Gute Nacht und ... ich werde mal versuchen, dort meine Komentare / Ideen / "Klugschisse" einzubringen... Dank Cori kann ich mir die Zeit dafür gönnen ... Herzlichen Gruß, Stefan
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
StefanP schrieb: und .... ES FUNKTIONIERT !!!! ... SUPER!!!!
👍
ABER: es steht im Verzeichnis "~/.config/systemd/user/..." und nicht in "/lib/systemd/system-sleep/" ... wie es hier: Power_management beschrieben wurde...... Warum?
/lib/systemd… ist systemweit. Das gilt für alle Benutzer. Was in deiner ~/.config steht, gilt nur für deinen Benutzer. Soll das systemweit für jeden Benutzer ausgeführt werden, müsstest du die Unit abändern und die Exec-Zeile entweder auf ein global erreichbares Script ändern - oder eine systemweite Unit für alle User einrichten, die den Nutzernamen als Argument bekommt. Das funktioniert über "@". Als Beispiel fällt mir da WLAN/wpa supplicant, welches für jede Netzwerkschnittstelle sowas wie wpa_supplicant@wlp3s0 bereitstellt.
Und - die dort beschriebene Routine hätte den Vorteil, dass man auch/zusätzlich Funktionen einbinden könnte, die VOR dem "Abschied von Stefan" erfolgen sollen ... Wie macht man das in deiner Methode?
Vor dem Abschied? Also du könntest eine weitere Unit mit "before" anlegen. Für nur eine Unit müsste ich aber wieder nachgucken, ob und wie das bei sleep geht. Normalerweise ist es so, dass die beim Start des Systems ausgeführten Units in umgekehrter Reihenfolge beendet werden. Was soll denn da noch passieren?
Nächste Frage: dein "Script" hat die Extension ".service" die dort endet auf ".sh" Hat DAS eine Bedeutung und wo finde ich die Erläuterungen dazu?
.sh ist ein Shell-Script, dass mittels sh ausgeführt wird. Eine Service-Unit ist nur eine Konfigurationsdatei, kein startbares Script. Der Unterschied ist, dass die Unit speziell auf dieses Event reagiert. Ein Script müsste das ausgeführte Event erst interpretieren, daher ist dort auch die Abfrage nach "$1" und "$2" (den ersten beiden Kommandozeilen-Argumenten) eingebaut. Welches sinnvoller ist, hängt immer von der Anforderung ab. Wenn du mehrere Dinge in einem Script abarbeiten willst, bietet sich das natürlich ein. Für einzelne Aufgaben bei bestimmten Events ist die Unit vorzuziehen. Und ja, auch da gibt es unzählige Ausnahmen. Viele Wege…
|