Como definir o gxmessage para ser executado no login e fazer com que os códigos de saída acionem eventos

0

Eu queria definir uma mensagem de 'termos de uso do computador' para aparecer no login. Se o usuário clicar em "Concordo", ele poderá continuar usando a máquina; se clicassem em 'Cancelar', ele reinicializaria a máquina. Aqui está o que eu tive:

#!/bin/bash

# This script is to set terms of use for this computer and force logged in guest to accept terms.
# If done correctly, it will restart the computer in the event that the terms are not accepted.

gmessage "This is a public terminal. Any use must be suitable for eyes of all ages. Failure to comply will result in your immediate removal from the property without any refund or discount." -center -title "Terms of Use" -default "Accept" -center -buttons "Accept":0,"Decline":1>/dev/null

case $? in
0)
gmessage "Enjoy our public terminal. :)" -center -title "Thank you for accepting the Terms of Use." -buttons "I will!":0;;

1)
(sudo reboot);;

esac

Alguém pode me ajudar a consertar isso? Ele estava funcionando como planejado até eu colocá-lo na lista de aplicativos de inicialização. Eu fiz chown root.root /path/to/script e também chmod u+x /path/to/script . Também editei visudo para incluir a linha %sudo ALL=NOPASSWD: /path/to/script e ainda nada. O script é executado corretamente, exibe todas as minhas janelas, , mas não reinicializa o computador quando alguém recusa os termos de uso e faz o logoff do usuário se eles não aceitarem os termos. Eu não estou mais preso, e meu chefe está respirando no meu pescoço para implementar essa correção a correção foi implementada (alguém tentou imprimir alguns materiais adultos gráficos do nosso terminal de computador público, que ficou preso no buffer da impressora, uma garotinha tentou imprimir algumas páginas de livros para colorir mais tarde, e mal conseguimos interceptar os materiais adultos antes que eles fossem vistos por um não adulto).

Código totalmente funcional segue.

#!/bin/bash

# This script is to set terms of use for this computer and force logged in guest to accept terms.
# If done correctly, this script will log the user out in the event that the terms are not accepted.

gmessage -fg red -bg black "   This is a public terminal. Any use must be suitable for eyes of all ages. Failure to comply will result in your immediate removal from the property without any refund or discount." -center -title "Terms of Use" -default "Accept" -center -buttons "Accept":0,"Decline":1>/dev/null

case $? in
0)
gmessage "   Enjoy our public terminal. :)" -center -title "Thank you!" -buttons "I will!":2;;

1)
(killall -u super8guest);;

esac


case $? in

2)
gmessage "Click here when you are finished." -center -title "Cleanup" -buttons "Done":3;;

esac

case $? in

3)
(killall -u super8guest);;

esac
    
por necromancini 22.08.2015 / 09:43

1 resposta

1

Esta é a resposta que eu fiz sozinho, depois de horas e horas de pesquisa. Postado aqui na esperança de que ajudará os outros que se encontram em uma situação semelhante.

#!/bin/bash

# This script is to set terms of use for this computer and force logged in guest to accept terms.
# If done correctly, this script will log the user out in the event that the terms are not accepted.

gmessage -fg red -bg black "   This is a public terminal. Any use must be suitable for eyes of all ages. Failure to comply will result in your immediate removal from the property without any refund or discount." -center -title "Terms of Use" -default "Accept" -center -buttons "Accept":0,"Decline":1>/dev/null

case $? in
0)
gmessage "   Enjoy our public terminal. :)" -center -title "Thank you!" -buttons "I will!":2;;

1)
(killall -u super8guest);;

esac


case $? in

2)
gmessage "Click here when you are finished." -center -title "Cleanup" -buttons "Done":3;;

esac

case $? in

3)
(killall -u super8guest);;

esac

Se alguém tiver ideias sobre como aperfeiçoar o código ou como fazê-lo funcionar melhor, não hesite em compartilhar. Eu ainda estou aprendendo.

    
por necromancini 05.09.2015 / 09:21