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

Прежде всего: это звучит как ошибка, сообщите об этом как таковой.

Некоторая проницательность: сама ошибка сама Python описана здесь, в основном, что она говорит, что строка локали, которая должна быть проанализированный должен быть разделен на «_» и разбит на две части (один называется LCODE, а другой CCODE) ... но есть более двух частей, поэтому Python жалуется. Локали имеют тенденцию выглядеть как en_US.UTF-8, поэтому их разделение на «_» является хорошей идеей: один говорит, что это английский, другая часть говорит, что это именно американский английский.

Возможно, у вас есть локали, которые не следуйте установленному формату (маловероятно, но возможно?)?

5
задан 28 February 2012 в 06:10

2 ответа

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

5
ответ дан 25 May 2018 в 14:00
  • 1
    Отличная идея .. почему я не подумал об этом? ;) – SpamapS 1 March 2012 в 04:00
  • 2
    Благодарю. Это то, что я искал. И это пригодится для одноразового использования. Очень полезный совет. – bambuntu 1 March 2012 в 06:58
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 очищается после каждой перезагрузки, так что это будет запущено снова при следующей загрузке, но никогда больше. Он будет нормально останавливаться после инструкции касания, поэтому нет необходимости в «остановке».

1
ответ дан 25 May 2018 в 14:00
  • 1
    Я готов перейти к 11, но мне нужно это для моего 10.04, чтобы закончить проект. Мне пришлось фактически удалить содержимое скрипта, которое он вызывает, чтобы остановить его. Это просто кажется грязным. – bambuntu 28 February 2012 в 20:46

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

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