C'è un modo per mostrare i messaggi sul muro agli utenti desktop?


9

Diciamo che sono lontano da casa, spasso sul mio computer di casa. Per qualsiasi motivo, ho bisogno che venga riavviato.

# shutdown -r +10

Questo invia un messaggio di avviso ogni minuto tramite wall, che è completamente invisibile per il normale uso del desktop da, diciamo, i miei genitori.

Esiste un modo in cui i wallmessaggi possono raggiungere il desktop tramite, diciamo, le notifiche.


1
Grazie alle informazioni contenute nelle risposte a questo post, ho potuto hackerare un programma Python che fa esattamente quello di cui avevo bisogno. Dipende dal libnotify-binpacchetto.
badp,

Risposte:


8

Gli interni di walle sono così bloccati e antichi che non c'è davvero modo di estrarre il messaggio da esso una volta che è lì.

L'unica vera idea proposta per questo ( il problema è stato discusso in precedenza , molte volte) è quella di modificare gli script shutdowne in rebootmodo che rendano qualcosa disponibile tramite dbus o (dato che abbiamo a che fare solo con un computer e una correzione) potresti basta che invii un messaggio di notifica-invio.

Essi sono solo gli script così si può solo incidere in loro. Ma penso che questa sia probabilmente una causa per cui valga la pena spingere. Invia un bug contro Ubuntu e aggiungi le tue patch (assicurati solo che possano funzionare senza la necessità di inviare la notifica se non c'è un ambiente X). È questo tipo di usabilità di cui abbiamo bisogno.

Non ne ho mai sentito parlare gxmessageprima, ma lo userei notify-send.

Una soluzione completa dovrebbe soddisfare la possibilità di più display (ad esempio multi-head, utenti remoti, ecc.) Ma per fortuna ieri ho scritto un codice per quel bit:

for display in `ps aux | grep -oE "/usr/bin/X\s[^ ]+" | cut -d " " -f 2`; do
    DISPLAY=$display notify-send -u critical 'Shutdown notice' 'Save all your work. THE SYSTEM IS GOING DOWN!!' -i /usr/share/pixmaps/gnome-computer.png
done

(Sto usando export invece di un -displayo --displayflag perché non so che notify-sendrichiede neanche uno)


gxmessage è un'app antica. venire a pensarci dbus e notifica-invio è un'opzione molto migliore. Forse posso elaborare qualcosa con zenità.
escluso l'

Sì, non sono sicuro di cosa sia meglio. zenitygli avvisi possono essere fastidiosi se stai cercando di salvare le cose prima di disconnetterti ... Ma le notify-sendnotifiche potrebbero essere ignorate.
Oli

1
È vero che la notifica di notifica-invio può essere ignorata ma se visualizzata una volta ogni pochi (ad es. 10 minuti) potrebbero fare il lavoro!
OpenNingia,

@Oli Ho scoperto che hai bisogno anche della variabile d'ambiente XAUTHORITY correttamente impostata perché funzioni.
badp,

1
DISPLAY=$display notify-send...esporterà quel valore di DISPLAY solo per quel comando; non è importante qui, ma è utile altrove e, IMHO, un po 'più pulito.

2

È possibile inviare un messaggio manualmente utilizzando Zenity

zenity --warning --text "badp's about to restart the computer" --display=:0

Certo, potresti includerlo in uno script.


Non riesco ad aprire il display, anche come superutente (devo sudo come l'utente giusto) :(
badp

Dovrebbe essere in grado di - sicuro di avere i due punti ( =:0non =0)
misterben l'

impossibile, è inoltre necessario che la variabile di ambiente XAUTHORITY sia impostata correttamente.
badp,

1

Dovresti essere in grado di scrivere uno script che cratea un ptty e ascolta i messaggi scritti (dalla scrittura o dal muro) e quindi lo inoltra su un output GUI.


0

AFAIK non esiste un client X per il comando wall per visualizzare questi messaggi in un ambiente grafico. Puoi usare l' app gxmessage per visualizzare i popup ma dovrai scrivere tu stesso lo script.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.