У меня есть скрипт, который запускается при запуске рабочего стола. Первый пользователь, который войдет в систему графически после загрузки, получит этот скрипт. Я хочу, чтобы он вызывался один раз, а не каждый раз, когда человек входит в систему. Как заставить скрипт выполнять только один раз?
# 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 очищается после каждой перезагрузки, поэтому при следующей загрузке он будет запускаться снова, но никогда больше. Он обычно останавливается после касания, поэтому нет необходимости «останавливаться».