Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
16.12.2018, 19:19:37

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 21203
  • Letzte: Wolle-8
Statistiken
  • Beiträge insgesamt: 561352
  • Themen insgesamt: 45507
  • Heute online: 605
  • Am meisten online: 992
  • (17.11.2018, 20:17:55)
Benutzer Online

Autor Thema:  Script beim Abmelden ausführen (Mate/Cinnamon)  (Gelesen 1828 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Script beim Abmelden ausführen (Mate/Cinnamon)
« am: 06.04.2016, 13:54:54 »
Hallo,

LM 64bit 17.1 17.2 jeweils Cinnamon und Mate

Ich suche nach einer Möglichkeit, ein Script direkt vor dem Abmelden laufen zu lassen. Da ~/.bash_logout nicht ausgeführt wird, wenn man mittels eines Displaymanagers eingeloggt hat behelfe ich mir mit einem Script, das beim Anmelden gestartet wird, und dann alle 3 Sekunden etwas überprüft.

Hintergrund:
Ich habe meinen Firefox mittels https://wiki.archlinux.org/index.php/Firefox_on_RAM#Place_profile_in_RAM_manually in eine RAM-Disk befördert, Geschwindigkeit und Performance haben sich stark verbessert.
Das Starten des "firefox-sync"-Scripts ist mittels "Startprogramme" (mate-session-properties) ist kein Problem, das Rücksichern aus der RAM-Disk in das lokale Profil allerdings schon, da home verschlüsselt ist, kann ein zu spät kommender cronjob nichts ausrichten.
Derzeit habe ich also ein Startup-Script, das nach dem Einloggen die RAM-Disk erzeugt, und dann alle 3 Sekunden den Firefox-Status ermittelt und dann rücksichert oder nicht. Recht aufwändig und kompliziert, und funktioniert auch nur dann, wenn der FF geschlossen wird bevor man ausloggt.

Hat dazu jemand irgendwelche Ideen?

Danke!

Korfox

  • Global Moderator
  • *****
Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #1 am: 06.04.2016, 14:01:22 »
Ich würde so aus dem Stegreif dazu tendieren, mit ein Script zu bauen, das erst dein Script ausführt, das den Firefox rücksichert und dann den Rechner runterfährt (oder den Abmelden-Dialog einblendet) und dieses Script dann per Starter zu nutzen - anstelle des Beenden/Abmelden-Buttons.


Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #3 am: 06.04.2016, 14:32:59 »
Hallo Korfox,

daran dachte ich auch schon, hatte es aber verworfen, weil es ja die "Abmelden" und "Beenden"-Buttons im Menü gibt, die (zumindest ich) nicht verändern kann.

... und unter Mate habe ich gerade gefunden, dass man die System-Buttons im Mate-Menü einzeln ausblenden kann - damit ist ein versehentliches "falsches" Ausloggen verhindert.

Das Script würde dann etwa so aussehen:

#!/bin/bash
~/.local_user_config/scripts/firefox-sync
mate-session-save --logout-dialog (bzw. --shutdown-dialog)
exit 0

... und wird mit einer .desktop-Datei als Starter in die Leiste gepinnt.

Trotzdem finde ich es merkwürdig, dass es dafür keine Option gibt (wohl aber eine die sich alle geöffneten Programme merkt)

Danke jedenfalls

Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #4 am: 06.04.2016, 14:35:52 »
@Teddy

vermutlich wird das nicht funktionieren, wegen dem verschlüsselten home - werd's aber heute Abend mal testen.

Korfox

  • Global Moderator
  • *****
Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #5 am: 06.04.2016, 14:47:46 »
Wie in Teddys Links schon angegeben:
Linux fährt man halt nicht runter :D.

Es gäbe auch die Idee, über die Runlevel zu gehen, aber da behaupte ich, dass du ziemlich sicher Probleme mit dem verschlüsselten /home bekommen wirst, wenn nicht sogar das Skript abgewürgt wird, weil es zu lange läuft.

ZeckeSZ

  • Gast
Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #6 am: 07.04.2016, 08:44:28 »
Linux fährt man halt nicht runter
Leider gibts dazu aber zu viele Möglichkeiten ;)
Mit Nachfrage:
gnome-session-quit --power-offbzw.
mate-session-save --shutdown-dialogOhne Nachfrage:
dbus-send --system --print-reply --system --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #7 am: 07.04.2016, 09:10:31 »
Vielleicht ist Cuttlefish was für dich:

https://linuxundich.de/gnu-linux/cuttlefish-automatisiert-euren-desktop/

Wird seit 2012 leider nicht mehr weiter entwickelt und war auf Ubunutu spezialisiert, wurde aber in der aktuellen PC-Linux behandelt.

Vielleicht ist das was für dich, so oder so ist es sehr nützlicher Tasker. Muss ich mich auch noch mal mit auseinander setzen.


ZeckeSZ

  • Gast
Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #8 am: 07.04.2016, 11:10:27 »
Hat dazu jemand irgendwelche Ideen?
Probier das einmal versuchsweise so (funktioniert hier mit LM 17.3/64 Cinnamon):

Öffne die Datei
gksu gedit /usr/share/cinnamon/applets/menu@cinnamon.org/applet.jsund suche nach "shutdown".

Du wirst folgendes finden:
this.menu.close();
this._session.ShutdownRemote();

Zwischen diese Zeilen fügst du den Aufruf deines Skriptes ein, dass sieht dann z.B. so aus:
this.menu.close();
Util.spawnCommandLine("zenity --info --text 'shutdown'"); // hier rufst du dein Skript auf
this._session.ShutdownRemote();

Wenn du diesem Beispiel folgst, musst du das Herunterfahren abbrechen, damit du das Infofeld noch sehen/bestätigen kannst (ist ja auch nur ein Beispiel).

Falls dein Skript allerdings vor dem Herunterfahren nicht komplett abgearbeitet wird,  kommentierst du die letzte Zeile (this._session.ShutdownRemote...) aus und trägst die Auswahl für das Herunterfahren/Neustarten eben als letztes in dein Skript ein:
cinnamon-session-quit --power-off
1. Nachtrag:
Sollten Aktualisierungen für Cinnamon anliegen, sind diese Änderungen vermutlich weg. Zumindest solltest du bei Updates Cinnamon betreffend da ein Auge drauf werfen.

2. Nachtrag
"gnome-session-quit" in "cinnamon-session-quit" geändert.

3. Nachtrag
Bei Mate (hier LM 17.1/64 Mate) funktioniert es ähnlich. Öffne die Datei
sudo pluma /usr/lib/linuxmint/mintMenu/plugins/system_management.pyund scrolle herunter bis
Button7.connect( "clicked", self.ButtonClicked, "mate-session-save --shutdown-dialog" )
Die Zeile ersetzt du mit
Button7.connect( "clicked", self.ButtonClicked, "sh /pfad/zu/deinem/script.sh" )und schreibst unten in das Skript den Aufruf hinein:
mate-session-save --shutdown-dialog
4. Nachtrag
Für den Logout kannst du es entsprechend auch ändern, die Einträge stehen in den genannten Dateien jeweils kurz vor den hier beschriebenen.
« Letzte Änderung: 07.04.2016, 13:44:34 von ZeckeSZ »

Re: Script beim Abmelden ausführen (Mate/Cinnamon)
« Antwort #9 am: 09.04.2016, 11:51:16 »
ops - seit ~2 Jahren ärgere ich mich mit dem Problem rum - und dann scheine ich hier auf eine   8) GOLDADER 8) gestoßen zu sein!

Irgendwie hab' ich wohl immer die falschen Suchbegriffe verwendet - auch eine Form von modernem Analphabetismus.

Also: vielen Dank erstmal für die Tipps - werde sie nächste Woche einbauen.

Vorneweg mal: Bei abgemeldetem User und verschlüsseltem home gibt's keinen Zugriff auf dasselbe ohne das User-Passwort - daher gehen alle cronjobs in's Leere. Eine Lösung für diesen speziellen Fall (das Firefox-Profil wird in das RAM verschoben und zwar nach /dev/shm/firefox-$USER ) nach dem User-Logout wäre nur so zu realisieren, dass root das Profil irgendwo mit den $USER-Rechten fix zwischenspeichert (*) und dass der User nach dem neuen Login es von dort wieder nach /dev/shm/firefox-$USER speichert. - kompliziert, aber möglich...

(*): /dev/shm/firefox-$USER bleibt auch nach dem Logout des Users bestehen und kann klarerweise von root gelesen werden, da es sich nicht innerhalb von $USER-home befindet. Einen Neustart übersteht es allerdings nicht - RAM ist eben RAM, und was passiert, wenn man den Speicher mit sonstwas vollpumpt hab' ich nicht probiert. Um die Methode sauberer zu gestalten sollte der User beim Ausloggen also nicht nur /dev/shm/firefox-$USER in sein lokales Profil rücksichern, sondern es auch aus /dev/shm/firefox-$USER entfernen - schon aus Sicherheitsgründen.

 

3. Advent
3. Advent