Tente alterar o proprietário, talvez se funcionar depois disso, o que é uma permissão. As permissões podem ser complicadas, mesmo que tenham acesso total às vezes.
Eu escrevi um script simples que é executado quando estou desligando meu computador. Coloquei o script no diretório /etc/init.d/
e o vinculei novamente a /etc/rc0.d/
. O link é link flexível e seu nome é K99checkout-reminder
.
Veja o resultado da listagem de arquivos em /etc/rc0.d/
:
lrwxrwxrwx 1 root root 24 Nov 17 18:10 K99checkout-reminder -> ../init.d/alert_checkout
Este é o conteúdo de alert_checkout
:
#!/bin/bash
export DISPLAY=:0.0
if zenity --question --text="I guess you have a nice working day?"; then
zenity --info --text="Gr8! Now please
_______
|
|
|
v
DO NOT forget to CHECKOUT your working time at door.\n\nSee you next day!"
else
zenity --info --text="Thats really sad.\n\nGo checkout your time to finish your working.\n\nHave good dinner, go sleep early and have a nice day!"
fi
Eu tentei executar o script em root
privilege e ele funciona bem:
$ /etc/rc0.d $ sudo ./K99checkout-reminder
Recebi uma caixa de alerta!
Há algo que eu esteja sentindo falta aqui?
Obrigado.
Tente alterar o proprietário, talvez se funcionar depois disso, o que é uma permissão. As permissões podem ser complicadas, mesmo que tenham acesso total às vezes.
tente adicionar \ símbolo antes dos finais de linha no texto zenity, desta forma:
#!/bin/bash
export DISPLAY=:0.0
if zenity --question --text="I guess you have a nice working day?"; then
zenity --info --text="Gr8! Now please \
_______\
\
|\
|\
|\
v\
\
DO NOT forget to CHECKOUT your working time at door.\n\nSee you next day!";
else
zenity --info --text="Thats really sad.\n\nGo checkout your time to finish your working.\n\nHave good dinner, go sleep early and have a nice day!"
fi
ou substitua os novos símbolos de linha por \ n escapes.
Por favor, note que há uma diferença entre executar sob privilégios de root e executando sob root
user . Se você tentou rodá-lo assim:
sudo ./alert_checkout
funcionou, pois o Real UID ainda estava definido para o usuário, com apenas o UID efetivo sendo alterado para root. No entanto, quando executado como um script init.d
, ele é executado sob o usuário root , portanto, os dois UIDs são definidos como root .
Isso é consfusing para zenity
, já que ele precisa exibir a mensagem dentro da sua sessão de usuário. Por isso, é necessário que o Real ID corresponda ao seu usuário.
Se você só precisa disso para trabalhar em uma conta de usuário específica, basta editar o script e executar o zenity em su <user> -c <zenity cmd>
.
Acho que o link que você está mostrando é um link simbólico ou link simbólico.
Quando o sistema está sendo desligado, acho que ele executa o Kill inits em ordem numérica, para que
K01 ... é executado antes de k02 ...
Se você estiver executando este script como K99 ...
Então o gerenciador de janelas não seria desativado?
Você já tentou executar seu script como:
K01checkout-reminder
Tags shutdown zenity linux-mint