запуск службы в systemd не прекращается

Создал исполняемый файл и планировал использовать его в качестве службы.

Когда он запускается в Ubuntu 12.04 или 14.04 с помощью upstart, он отлично работает.

Однако в Ubuntu 15.04 (с systemd) эта команда не завершается:

systemctl start mySrv01

Может ли это быть, потому что я не закрыл stdin? выскочка, кажется, не возражает. Есть идеи? Благодаря.

0
задан 27 August 2015 в 01:07

2 ответа

Выпущенный для systemd, процесс демона mySrv01 должен будет разветвить дочерний процесс и более обеспеченный, закрыть stdin.

не должен был делать этого при использовании выскочки не знайте почему.

0
ответ дан 27 August 2015 в 11:07
  • 1
    Просто используйте blkdiscard. Это достаточно хорошо для любого разумного варианта использования (кроме gainst allmighty государственные агентства). – AlexP 18 November 2016 в 17:55

не должен был делать этого при использовании выскочки не знайте почему.

Вы не должны делать этого с systemd, также. У Вас есть несоответствие протокола готовности. Ваш сервисный файл единицы говорит, что Ваша программа использует Type=forking протокол готовности. Но Ваша программа сама на самом деле не сделала.

forking в протоколе готовности трудно разобраться, и легкий понять превратно. Почти никакая программа в дикой местности на самом деле не использует его. Просто сделайте свою сервисную единицу Type=simple, если это - то, с чего она уже должна была запуститься.

, Кроме того, Вы не должны небрежно обращаться с попыткой к "dæ monize" путем выполнения вещей как закрытие открытых дескрипторов файлов. Ваша программа уже dæ monized.

Дополнительные материалы для чтения

0
ответ дан 27 August 2015 в 11:07
  • 1
    Ха-ха, большой ответ..:), Но да его SSD. Я должен, вероятно, обновить вопрос – Nick Div 18 November 2016 в 17:19

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

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