Как принудительно остановить бесконечный цикл в Upstart «pre-start script»?
У меня есть следующее pre-start script
в одной из моих конфигураций Upstart:
pre-start script cd "$(dirname "$(dirname "$(readlink "/etc/init/$.conf")")")" . "lib/upstart/waitFor[...].sh" end script
Вызываемая функция, по сути, представляет собой только бесконечный цикл, ожидающий, пока какой-то ресурс станет доступным, для которого в настоящее время не существует конфигурации Upstart:
function waitFor[...]() { while [ true ] do if [...] > /dev/null then break fi sleep 10s done } waitFor[...]
Вчера я обнаружил проблему с этим подходом, если ожидаемый ресурс по какой-то причине не становится доступным: задание навсегда зависает start/pre-start
, что ожидается, но если я выдаю stop
событие, pre-start script
оно не уничтожается или тому подобное, что я ошибочно предположил, но вместо этого состояние работы меняется на stop/pre-start
. Проблема в том, что оболочка, в которой я выпустил stop
событие, теперь висит навсегда, скорее всего, ожидая pre-start script
завершения. Если я нажму CTRL + C на этой оболочке и выдам stop
снова, Upstart сообщит мне, что задание уже остановлено и быстро возвращается, но pre-start script
оно все еще выполняется, что легко увидеть, используя status
вывод, который stop/pre-start
снова выводится .
Итак, мне нужен какой-то способ заставить Upstart уничтожить сам скрипт или каким-то образом в скрипте распознать, что он должен перестать ждать сам.
Я не нахожу никаких force
аргументов или что-то подобное только для Upstart --no-wait
. Но это не останавливает сценарий ожидания, только больше не блокирует оболочку остановки. Так есть ли какое-то изменение состояния, которое скрипт может легко распознать? Единственное, о чем я могу думать в настоящее время, это запрос статуса работы.
Есть еще идеи? Я думаю, что предпочел бы какой-то аргумент командной строки для остановки, которую я мог пропустить.
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4