Почему выскочка продолжает возрождать мой процесс?

Я также столкнулся с этим при двойной загрузке после обновления Windows 7 до Windows 10. У меня возникла проблема с тем, что Ubuntu не смогла подключить раздел NTFS, предназначенный для совместного использования обеими ОС. (Ref Не удалось получить доступ к разделу Windows NTFS NTFS из Ubuntu 13.10 даже после отключения быстрого запуска)

Я отключил быстрый запуск в Win10. Это фиксировало разделяемый раздел и в то же время разрешило проблему с соединением Ethernet. Я не уверен, почему они будут связаны, но это сработало для меня, поэтому, возможно, стоит попробовать.

19
задан 22 September 2011 в 02:04

4 ответа

Трудность здесь заключается в сочетании «респауна» с предварительным сценарием, который говорит о прекращении процесса. Из init (5):

   respawn
         A service or task with this stanza will be automatically started
         if it should stop abnormally.  All reasons for a service stopping,
         except the stop(8) command itself, are considered abnormal.  Tasks
         may exit with a zero exit status to prevent being respawned.

Документация немного неясна в отношении того, должен ли выход с нулевым статусом выхода вызвать респаун. Тем не менее, в основном вы обнаружили ошибку выскочки, потому что основной процесс, заканчивающийся, когда цель «останавливается», не должна приводить к изменению «респауна».

Чтобы обойти эту ошибку, вы должны быть способны использовать «нормальный выход», чтобы сказать выскочку, что это нормальный способ остановить работу и что она не должна появляться.

  normal exit STATUS|SIGNAL...
         Additional exit statuses or even signals may be added, if the
         job process terminates with any of these it will not be considered
         to have failed and will not be respawned.

         normal exit 0 1 TERM HUP

Обратите внимание, что в целом это быть более надежным, чтобы убить процесс сигналом (при необходимости указывая «сигнал уничтожения N») вместо процесса предварительной остановки, который выдает команды; но, конечно, это не всегда возможно, если служба не поддерживает чистое выключение после получения сигнала.

23
ответ дан 25 May 2018 в 18:42
  • 1
    Спасибо, что работа отлично подходит для моего дела. Для этого я нашел отчет об ошибке , но, похоже, это поведение действительно сознательно спроектировано. – passy 22 September 2011 в 13:32
  • 2
    Ответ Скотта Джеймса Remnant там правильный - это ошибка, а не дизайнерское решение, упомянутый тестовый пример предназначен для тестирования чего-то еще :) – slangasek 28 September 2011 в 10:19

В случае, если кто-то еще окажется здесь, я отправил рабочий патч к ошибке:

https://bugs.launchpad.net/upstart/+bug/568288/comments/6

3
ответ дан 25 May 2018 в 18:42

Исправление было выпущено в upstart 1.10 для этого, так что теперь этого не должно быть.

2
ответ дан 25 May 2018 в 18:42
  • 1
    Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – amc 18 May 2014 в 07:57
  • 2
    Я не совсем уверен в этом. Мой ответ эквивалентен высказыванию: Это происходит потому, что вы используете старую версию upstart, у которой была ошибка, используйте версию 1.10 или новее, чтобы ее исправить. Что-то, о чем ни один из других ответов не говорит, и на самом деле самый полезный ответ теперь, когда исправление было выпущено, и нет оснований для обходного пути. – cprcrack 18 May 2014 в 14:59
  • 3
    Я согласен, что это полезно, но я думаю, что это более полезно в качестве комментария к принятому ответу – amc 18 May 2014 в 21:34

Исправление было выпущено в upstart 1.10 для этого, так что теперь этого не должно быть.

2
ответ дан 25 July 2018 в 21:18

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

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