Como posso verificar se um conjunto de comandos é executado na inicialização? [duplicado]

1

Estou no processo de criar uma interface GUI para xrandr e preciso que alguns comandos sejam executados na inicialização.

Estou usando um arquivo .desktop colocado em ~/.config/autostart .

Não sei dizer se isso funcionará, pois xrandr não funciona com minha configuração - sei que as coisas estão funcionando como devem ser; é só o meu sistema não suporta - eu só vou pegar um monte de erros xrandr. O que também significa que receberei erros na inicialização e nenhuma alteração perceptível.

Existe alguma maneira de descobrir se os comandos foram executados?

    
por TellMeWhy 26.04.2016 / 09:47

1 resposta

4

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

    
por Videonauth 26.04.2016 / 11:05