Xmessage
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:
- (J)etzt nicht --> mit einem returncode von 255
- 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
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