O trabalho do Cron encerra o sistema ignorando o tempo especificado

0

Eu fiz um script que pergunta ao usuário se ele quer desligar o computador em 10 minutos ou esperar outra hora e eu programo no cron para rodar a cada hora das 18h às 7 da manhã. No entanto, aconteceu dois problemas: 1 - A caixa que faz a pergunta não aparece 2 - Ele não desliga em 10 minutos, mas no momento que roda o script como se eu tivesse usado a opção now

ideias?

O script:

#!/bin/bash
date='date'
usuario='who | sed q | awk -F" " '{print $1}''
export XAUTHORITY=/home/$usuario/.Xauthority
if zenity --question --text="Seu micro ser desligado em 10 minutos. Tudo bem?" --title="Desligar?" --ok-label="Prorrogar" --cancel-label="Pode Desligar" --timeout=300; then
  echo "NAO DESLIGOU "$date >> /tmp/testes_desligar;
else
  echo "DESLIGOU "$date >> /tmp/testes_desligar;
  /sbin/shutdown -h +10; #already tried shutdown -h 10 but same thing happens...
fi

O trabalho CRON (em / etc / crontab):

48 0-7,16-23 * * * root /home/myuser/shell/desliga.sh
    
por Heathz 08.12.2015 / 20:16

1 resposta

0

Entre os dois problemas, talvez seja necessário:

Para 1) edite o arquivo sudoers (use 'visudo') se alguma parte do seu script exigir acesso root. Muita informação na web sobre como fazer isso.

Para 2) isso soa como um problema de depuração de script. Você obtém o mesmo comportamento se você executar o script a partir do terminal em vez de esperar que o cron o inicie? O comportamento é diferente se você o executar como root (sudo)?

Você também pode considerar adicionar [[ e ]] à sua instrução if. +1 para @Elder Geek para o caso.

    
por tniles09 08.12.2015 / 20:40