Как запустить скрипт один раз и только один раз в Upstart?

У меня есть скрипт, который запускается при запуске рабочего стола. Первый пользователь, который войдет в систему графически после загрузки, получит этот скрипт. Я хочу, чтобы он вызывался один раз, а не каждый раз, когда человек входит в систему. Как заставить скрипт выполнять только один раз?

# one time script

start on desktop-session-start
stop on somebodystopme

script
...
end script
5
задан 28 February 2012 в 04:10

2 ответа

Используйте секцию post-start script вместо секции script. Он оставит работу в состоянии started/running и не будет перезапущен.

0
ответ дан 28 February 2012 в 04:10
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

Это предполагает Ubuntu 11.10 или новее. Используйте / var / run для более ранних выпусков. / run очищается после каждой перезагрузки, поэтому при следующей загрузке он будет запускаться снова, но никогда больше. Он обычно останавливается после касания, поэтому нет необходимости «останавливаться».

0
ответ дан 28 February 2012 в 04:10

Другие вопросы по тегам:

Похожие вопросы: