Resolvi um problema consultando a web, infelizmente não havia nenhuma explicação sobre o porquê do comando que encontrei funcionar.
Preciso executar um script com cron/anacron e exibir o resultado em uma tela de terminal. Para fazer isso, na última linha deste script, primeiro tentei este comando:
xterm -hold -e 'cd /home/<user>/ && cat inode2 ; bash'
Só funcionou se eu mesmo executei o script. Eu o substituí por:
DISPLAY=:0 xterm -hold -e 'cd /home/mmas/ && cat inode2 ; bash'
Até onde eu posso entender, DISPLAY=:0 significa “escolha a tela de exibição atual”. E é isso que acontece: uma pequena tela de terminal aparece na janela ativa do meu laptop, exibindo o resultado do script. Nos meus arquivos ~/.bashrc e /root/.bashrc, já há um “export DISPLAY=:0.0”. Aparentemente, o cron não sabe sobre isso.
Minhas perguntas são:
- no comando modificado, DISPLAY=:0 realmente significa "exibir tela da janela ativa atual" ou algo mais?
- por que tenho que especificá-lo no início do meu comando?