Point ZENITY para CRONTAB: como

0

Estou executando o Xubuntu 16.04 (lts)

E meu problema inicial foi:

  1. como definir um trabalho de crontab que desligue o computador a cada 30 minutos;
  2. como definir um aviso gráfico para o usuário de que o computador será desligado;

Para o 1º problema (desligamento 30 minutos) a solução foi fácil - procurei no ubuntu e em outros fóruns do ubuntu e encontrei alguns posts bons, principalmente o seguinte: Como reiniciar a cada 30 minutos automaticamente?

Depois de ler este post e outros, percebi que existem diferentes opções para definir um trabalho de crontab:

  • cronjob em todo o sistema, localizado em / etc / crontab
  • usuário (s) cronjob, que pode ser acessado no terminal BY crontab -e (crontab -e é diferente do sudo crontab -e, que é o root crontab)

Então, tendo isso em mente, minha saída CRONTAB inicial (usando o crontab localizado em / etc / crontab) foi

* / 30 * * * * root shutdown -r +2

Esta saída diz que o computador irá desligar (comando: shutdown) e reiniciar (-r) a cada 30 minutos +2 minutos, com um aviso TRANSMITED somente para o terminal (se o terminal / console estiver aberto).

Por favor, note que esta solução para o meu primeiro problema funcionou, mas às vezes como referenciado no link acima ( link .) temos que usar outra saída

* / 30 * * * * root / sbin / shutdown -r +2

por exemplo, a saída acima funciona em outra máquina que executa element os os freya 0.3.2. (baseado no Ubuntu 14.04 lts), mas não será executado no meu computador Xubuntu 16.04.

Então eu estava feliz :-) era hora de lidar com o segundo problema:

"como definir um aviso gráfico para o usuário que o computador será desligado"

e isso não foi fácil de resolver ... Eu entendi de minhas pesquisas que eu precisava de algum tipo de aplicativo que traz diálogos para a tela. Eu li sobre o notify-send e sobre o ZENITY - eu testei ambos, mas eu queria uma GRANDE notificação na tela, então eu escolhi o ZENITY - um teste simples pode ser feito: abra um terminal e cole este

zenity --warning --text="CRISTIANO RONALDO É O MELHOR"

Depois disso eu precisei de algo para executar este aviso no crontab - eu criei um script simples (meu primeiro :-)) chamei de aviso.sh e salvei no meu diretório home: / home / paulo /

#! / bin / bash

zenity --warning --text="O computador vai desligar-se dentro de 2 minutos. P.f. guarde os seus documentos. Obrigado"

depois, dei-lhe as permissões necessárias: chmod a + x /home/paulo/aviso.sh

e os PROBLEMAS começaram ... eu não consegui receber um aviso de mensagem GUI, apesar do fato de que no terminal meu script funcionou bem ...

eu li e li e fiz testes e testes e nada - então eu decidi postar no askubuntu uma pergunta para ajuda / instruções

Meu post inicial foi marcado como duplicado e recebi outro post para seguir, MAS este post não funcionou, mas com a ajuda de - David Foerster - fui apontado na direção certa

Então, o que funcionou? aqui está o OUTPUT:

* / 30 * * * * DISPLAY =: 0 /home/paulo/aviso.sh

meus testes iniciais (NÃO TRABALHANDO) levam a algo assim: 20 20 * * * exportação NO_AT_BRIDGE = 1 & amp; /home/paulo/aviso.sh

Então, o que aprendi é:  - que, se DISPLAY =: 0 não estiver presente em sua saída, a mensagem GUI provavelmente não aparecerá em sua tela;  - você também deve especificar o caminho completo: / home / username / name do script.sh  - você pode acessar o usuário crontab digitando crontab -e em um terminal / console  - Eu usei crontab -e para definir a mensagem gráfica e usei o crontab / etc / crontab para definir o desligamento da máquina  - no meu caso, usar e definir "xhost local: paulo", não ajudou e nem definir "exportar NO_AT_BRIDGE = 1"  - o que funcionou foi:  - item da lista

1- acessando o crontab -e no terminal / console

1.1. * / 30 * * * * DISPLAY =: 0 /home/paulo/aviso.sh

2- acessando o sistema amplo crontab sudo gedit / etc / crontab

2.1. * / 30 * * * * encerramento da raiz -r +2

Se você acessar crontab -e, você será convidado a escolher entre diferentes editores de texto; Eu escolhi NANO; depois de colar / escrever o texto, você precisa usar control + x para salvar o texto e teclar enter.

Então é isso. Obrigado. Resolvido.

    
por ajadal 22.10.2016 / 19:05

0 respostas