Upstart - запуск после завершения задачи

У меня задание Upstart, настроенное с использованием раздела task, от которого зависит другое задание до его запуска. Однако это задание также должно ожидать запуска другой службы перед ее запуском. Это вызывает некоторые проблемы - задание запускается, если задание завершается до начала зависимого задания, но не запускается, если задание завершается после запуска задания.

Например, пусть task-a будет задачей, от которой зависит задание, тогда это файл конфигурации задания:

start on (stopped task-a and started cups)

script
    echo do stuff
end script

Как я могу получить задание, подобное приведенному выше, для запуска после задание завершено , но после начала другого задания? Я могу изменить задачу, если это необходимо, но я не думаю, что спать вечно - это очень хорошее решение. Версия Ubuntu в этом случае - 12.04.

1
задан 15.04.2020, 23:30

2 ответа

У меня было бы первое задание, «излучающее» свой собственный сигнал (это команда):

initctl emit job-a-done

И прыгнул на это в моей выскочившей работе ...

start on started cups and job-a-done

Это изложено в кулинарной книге .

1
ответ дан 15.04.2020, 23:31
  • 1
    К сожалению, этот hasn' t работал. Первое задание испускает сигнал, но второй все еще doesn' t запускаются. Я подозреваю, что это вызвано тем, что в некоторых случаях CUPS hasn' t ' started' к тому времени, когда сигнал испускается. – Peter Wood 15.04.2020, 23:31

Хорошо, поэтому после многих хлопот, пытаясь заставить это работать, я сдался. Я пробовал:

  1. Начало работы после запуска одной работы и остановки другой (задача)

    start on (started cups and stopped my-task)
    
  2. [119 ] Начало работы после запуска одной работы, а другая издала сигнал (см. Ответ Оли)

    start on (started cups and my-task-finished)
    
  3. Начало работы после запуска обеих работ ( задание бесконечно ждет)

    start on (started cups and started my-task)
    

Ни одна из попыток не сработала. Для справки, я хотел начать работу после запуска CUPS и выполнения моей задачи. Когда в CUPS были настроены принтеры, он запускался медленно и скрипт работал правильно (в случаях 1 и 3, 2 никогда не работали должным образом). Однако, когда в CUPS не было настроено ни одного принтера, он запускается мгновенно (я имею в виду, WTF Upstart, почему это происходит в первую очередь?), Но что более важно, моя работа не будет работать.

Я пришел к выводу, что Upstart в Ubuntu 12.04 LTS полностью сломан. Я не уверен, что это ошибка, исправленная в более новой версии Ubuntu, но это довольно серьезная проблема.

1113 Итак, решение. Не используйте Upstart. Переключитесь на systemd, если это возможно, или используйте SysV в тех случаях, когда он недоступен / недоступен в обслуживании. О, и Canonical, пожалуйста, исправьте это.

0
ответ дан 15.04.2020, 23:31

Теги

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