Como executo um script uma vez e somente uma vez no Upstart?

5

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
    
por bambuntu 23.02.2012 / 15:34

2 respostas

5

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.

    
por Tuminoid 29.02.2012 / 09:49
1
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'.

    
por SpamapS 28.02.2012 / 00:32

Tags