Xmessage

Aus SchnallIchNet
Wechseln zu: Navigation, Suche

sende aus der shell eine nachricht auf einen X-Server

ich benoetige das zum beispiel um einen gemounteten, verschluesselten container zu UN-mounten.
ich pruefe also im script, ob der container entschluesselt und gemountet ist und sende VOR dem umount eine X-Message auf den Bildschirm.
wird diese nachricht nicht bestaetigt wird der umount durchgefuehrt...

xmessage -nearmouse -buttons "(J)etzt nicht":255,"(N)a klar":0 -timeout 120 -file /etc/cryptmount.xmessage

mit -file gebe ich den datei-pfad/-namen an, der als text angezeigt werden soll.
in meinem fall:

Verschluesselter Container ist gemounted!!!!!
Ich werde diesen in 120 sec. UN-mounten!!

Druecke "Jetzt nicht" um den Vorgang abzubrechen
oder "Na klar" um sofort einen UN-mount durchzufuehren.

unterhalb des textes werden 2 buttons angezeigt:

  1. (J)etzt nicht --> mit einem returncode von 255
  2. Na klar --> mit einem returncode von 0

diese returncode stehen nach der betaetigung der buttons in der bash zur verfuegung...
nach dem timeout von 120 sekunden beendet sich das fenster ebenfalls mit einem returncode von 0

Achtung.jpeg Damit der spass als cronjob funktioniert muss man den user, der den cronjob ausfuehr fuer den X-server freigeben

und zwar als der user der den X-server gestartet hat!!

/usr/bin/xhost +si:localuser:root

das ganze ist natuerlich unnoetig wenn der cronjob-user mit dem X-user identisch ist... ;-)
ausserdem ist es natuerlich unschoen seinen X-server fuer root freizugeben!!!
um das zu vermeiden koennte man auch einfach ein su verwenden

su MyUserName -c xmessage -nearmouse -buttons "(J)etzt nicht":255,"(N)a klar":0 -timeout 120 -file /etc/cryptmount.xmessage

so kann man sich die freigabe des X-server ueber xhosts sparen!
wichtig ist nur, dass MyUserName der user ist, der sich am X-server anmeldet