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

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

# one time script start on desktop-session-start stop on somebodystopme script ... end script 

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

 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 очищается после каждой перезагрузки, так что это будет запущено снова при следующей загрузке, но никогда больше. Он перестанет нормально после заявления касания, поэтому нет необходимости останавливаться.