Use a seção post-start script
em vez da seção script
. Ele deixará o trabalho como started/running
state e não será executado novamente.
Eu tenho um script que começa no desktop-session-start. A primeira pessoa que efetuar login graficamente após uma inicialização terá esse script chamado. Eu quero que ele seja chamado uma vez, não toda vez que uma pessoa se conecta. Como posso fazer um script executar apenas uma vez?
# one time script
start on desktop-session-start
stop on somebodystopme
script
...
end script
Use a seção post-start script
em vez da seção script
. Ele deixará o trabalho como started/running
state e não será executado novamente.
start on desktop-session-start
task
env FLAGFILE=/run/.my_script_has_run
pre-start script
if [ -e $FLAGFILE ]; then
stop
fi
end script
script
...
touch $FLAGFILE
end script
Isso pressupõe o Ubuntu 11.10 ou posterior. Use / var / run para liberações anteriores. / run é limpo após cada reinicialização, então isso será executado novamente na próxima inicialização, mas nunca mais. Ele irá parar normalmente após a instrução de toque, por isso não há necessidade de uma 'parada'.
Tags upstart