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

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

Estou no processo de criação de um front-end GUI para xrandre preciso que alguns comandos sejam executados na inicialização.

Estou usando um .desktoparquivo colocado em ~/.config/autostart.

Não sei dizer se isso funcionará, pois xrandrnão funciona com minha configuração - sei que as coisas estão funcionando como deveriam; é só que meu sistema não suporta isso - vou receber vários erros de 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?

Responder1

Se o seu arquivo iniciado automaticamente .desktopfor um script, você simplesmente pode colocar 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

Dessa forma, você ainda pode gerar alguns dados variáveis ​​​​que deseja controlar dessa forma. Apenas certifique-se de que seu 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 em seu script falharam, você também pode fazer:

# 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 seria buscado apenas se um de seus comandos gerasse um erro. Claro que não é aplicável em todos os lugares, mas ainda é melhor porque não tem 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

Quer saber mais sobre scripts bash em profundidade aqui dois links:

Guia Bash para Iniciantes - Machtelt Garrels - 2008
Guia avançado de script Bash - Mendel Cooper - 2014

informação relacionada