LINUX.ORG.RU
ФорумAdmin

systemd не стопится сервис

 


0

2

всем привет

Написал юнит под свой скрипт.
Подскажите пожалуйста, не стопится сервис, ошибок никаких, делаю kill пида

[Unit]
Description=yii
After=network.target

[Service]
Type=simple
User=root
ExecStart=/data/scripts/yii msg
ExecStop=/bin/kill $MAINPID


[Install]
WantedBy=multi-user.target

лог

● yii.service - yii
   Loaded: loaded (/etc/systemd/system/yii.service; disabled; vendor preset: disabled)
   Active: failed (Result: signal) since Пт 2016-02-19 16:19:02 MSK; 13min ago
  Process: 7999 ExecStop=/bin/kill $MAINPID (code=exited, status=0/SUCCESS)
  Process: 7976 ExecStart=/data/scripts/yii msg (code=killed, signal=KILL)
 Main PID: 7976 (code=killed, signal=KILL)

фев 19 16:18:39 DEV0 systemd[1]: Started yii .
фев 19 16:18:39 DEV0 systemd[1]: Starting yii ...
фев 19 16:18:54 DEV0 systemd[1]: Stopping yii ...
фев 19 16:19:02 DEV0 systemd[1]: yii.service: main process exited, code=killed, status=9/KILL
фев 19 16:19:02 DEV0 systemd[1]: Stopped yii .
фев 19 16:19:02 DEV0 systemd[1]: Unit yii.service entered failed state.
фев 19 16:19:02 DEV0 systemd[1]: yii.service failed.

Что я делаю не так?



Последнее исправление: carter (всего исправлений: 1)

ExecStop=/bin/kill $MAINPID

А не лучше снабить этот yii нормальной остановкой?

Deleted
()

похоже, твой скрипт не умирает при посылке ему дефолтового сигнала, по крайней мере при посылке тому pid'у, который видит systemd

anonymous
()

Не нужно в ExecStop= писать kill. systemd сам умеет убивать процессы. Если не указать ExecStop=, то именно это и произойдёт.

intelfx ★★★★★
()

systemd - corrypted by design

anonymous
()
Ответ на: комментарий от anonymous

спасибо ) так и есть)

[Unit]
Description=yii
After=network.target

[Service]
Type=simple
User=root
ExecStart=/data/scripts/yii msg
ExecStop=/bin/kill -KILL $MAINPID


[Install]
WantedBy=multi-user.target

carter
() автор топика
Ответ на: комментарий от carter

-KILL нужно использовать только в аварийном случае, а для нормального завершения программы предназначен -TERM

anonymous
()
Ответ на: комментарий от carter

я это уже понял, поэтому и написал, что так как ты делаешь — неправильно, а раз правильный способ не работает, то надо исправить ответную часть, т.е. научить свой скрипт завершаться по -TERM

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.