Se o seu arquivo .desktop
auto iniciado for um script, você poderá simplesmente inserir um eco de controle no script, como no exemplo a seguir:
# if yyou want only data saved for one run
echo "Script has run on $(date)" > ~/script.log
# if you want a continous log output append
if [ -e ~/script-log ]
then
echo "Script has run on $(date)" >> ~/script.log
else
touch ~/script.log
echo "Script has run on $(date)" >> ~/script.log
fi
Desta forma, você pode até mesmo enviar alguns dados variáveis que você pode querer para controlar dessa maneira. Apenas certifique-se de que o resultado final seja impresso após todos os comandos do script, para que você saiba que o script foi executado.
Se você quiser saber exatamente se seus comandos no script falharam, você também pode:
# do this at start of your script
if [ -e ~/script-error.log ]
then
# we do nothing
else
touch ~/script-error.log
fi
# then within your script (I use as example here cd /root just to demonstrate)
# you can do this with nearly all commands
cd /root 2>> ~/script-error.log
Isso só seria obtido se um dos seus comandos lançasse um erro. Claro que não é aplicável em todos os lugares, mas é melhor do que não ter saída alguma.
Explicação da tubulação:
# single piping symbol (overwrite the existing file and creates one if not existant)
> # pipes all output
1> # pipes only success messages
2> # pipes only error messages
# double piping symbol (append to an existing file and fail if file does not exist)
>> # pipes all output
1>> # pipes only success messages
2>> # pipes only error messages
Deseja saber mais sobre scripting bash em profundidade aqui, dois links:
Guia do Bash para Iniciantes - Machtelt Garrels - 2008
Guia avançado de script de script - Mendel Cooper - 2014