Executando o cron no Cygwin para chamar o notifu

Executando o cron no Cygwin para chamar o notifu

Instalei o Cygwin cygrunsrve o Cron para poder aproveitar os benefícios do agendamento no estilo Linux no Windows. eu quero ligarnotificarde um cron job.

Instalei o cron como um serviço usando o comando:

cygrunsrv -I cron -d "CYGWIN cron" -u cron_srv -p /usr/sbin/cron -a -n

Está tudo bem, o serviço está rodando e não reportando nenhum erro. Também dei a esse cron_srvusuário todos os privilégios necessários, para que ele possa alternar entre contextos de usuário, etc.

crontab -ldá estes dois trabalhos que defini:

HOME=/home/<username>
PATH=/usr/local/bin:/usr/bin:/bin:/cygdrive/c/utils/notifu:$PATH
# testing
* * * * * echo "Cron test at $(date +\%k:\%M)" >> ~/testcron.txt 2>&1
* * * * * notifu /p "Balloon Title" /t warn /w /m "event description"

croneventsdá isso:

2014/03/03 13:08:01 [cron_srv] /usr/sbin/cron: PID 2592: (branchito) CMD (echo "Cron test at $(date +%k:%M)" >> ~/testcron.txt 2>&1)
2014/03/03 13:08:01 [cron_srv] /usr/sbin/cron: PID 4076: (branchito) CMD (notifu /p "Balloon Title" /t warn /w /m "event description")

..então sem erros. E eu criei meu testcron.txtarquivo e o preenchai corretamente com meu teste de data personalizado. Mas notifunão aparece um balão com mensagem, embora não relate nenhum erro croneventse parece ser executado tão bem quanto seu trabalho de teste de encontro de amigo.

Defino minha PATHvariável explicitamente para que ela possa encontrar o notifuprograma, mesmo que esteja contido no último anexo PATH, mas queria ter certeza.

O interessante é que o notifucomando roda sem problemas no terminal Cygwin, o balão está estourando com a mensagem tudo bem, mas no cron job não está acionando.

Eu li algo sobre a DISPLAYvariável de ambiente, isso poderia ser um problema, talvez? Se sim, como eu definiria seu valor no arquivo crontab? No Linux é parecido DISPLAY=:0.0, mas não sei como definir esse valor no Windows.

EDITAR

Fazendo mais algumas pesquisas, descobri que o problema está no fato de que a partir do Windows Vista, os serviços atuam apenas e somente em session 0 isolationnível, portanto não podem interagir com o Desktop por precaução de segurança, ou podem, mas de alguma forma especial de instância de desktop segura.

Gostaria que alguém me dissesse como seria possível neste caso (meu caso), que este serviço pudesse enviar mensagem para aquele notifuaplicativo, apenas para aparecer a dica do balão com aquela mensagem, e isso seria possível sem modificar o serviço em si, porque não sou seu autor. Existe alguma maneira de conceder algumas logon aspermissões a esse serviço, para que ele atue no espaço do usuário.

informação relacionada