Acho que meu primeiro palpite sobre a maneira como a variável DISPLAY
é tratada está errado. Eu acho que o problema de alguma forma relacionado a cron
usando um shell não interativo. Um script de teste usando um loop read
infinito falhou ao ser executado. No entanto, quando testei abrindo uma nova guia:
* * * * * DISPLAY=:0 /usr/bin/gnome-terminal --tab -e /home/murukesh/test.sh
funcionou bem.
De acordo com essa pergunta da SU e este fórum do Ubuntu post , você pode ter que export
a variável $DISPLAY
ou usar env
:
1 * * * * env DISPLAY=:0.0 /usr/bin/gnome-terminal -e /home/user/Desktop/mltpl
(ou)
1 * * * * export DISPLAY=:0.0 && /usr/bin/gnome-terminal -e /home/user/Desktop/mltpl
Isso talvez devido ao shell usado por cron
sendo sh
e não bash
(consulte Qual é a diferença entre set, export e env e quando devo usar cada um? ).
Também dê uma olhada em O script não é executado via crontab mas funciona bem autônomo .