Прежде всего: это звучит как ошибка, сообщите об этом как таковой.
Некоторая проницательность: сама ошибка сама Python описана здесь, в основном, что она говорит, что строка локали, которая должна быть проанализированный должен быть разделен на «_» и разбит на две части (один называется LCODE, а другой CCODE) ... но есть более двух частей, поэтому Python жалуется. Локали имеют тенденцию выглядеть как en_US.UTF-8, поэтому их разделение на «_» является хорошей идеей: один говорит, что это английский, другая часть говорит, что это именно американский английский.
Возможно, у вас есть локали, которые не следуйте установленному формату (маловероятно, но возможно?)?
Используйте секцию 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 очищается после каждой перезагрузки, так что это будет запущено снова при следующей загрузке, но никогда больше. Он будет нормально останавливаться после инструкции касания, поэтому нет необходимости в «остановке».