我有一个在桌面会话启动时启动的脚本。启动后第一个以图形方式登录的人将调用此脚本。我希望它只调用一次,而不是每次有人登录时都调用。如何让脚本只执行一次?
# one time script
start on desktop-session-start
stop on somebodystopme
script
...
end script
答案1
使用post-start script
section 而不是script
section。它将使作业保持started/running
状态,并且不会重新运行。
答案2
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,因此下次启动时会再次运行,但不会再运行。它会在 touch 语句后正常停止,因此不需要“stop on”。