Процесс, запущенный под systemd, грузит процессор
Есть сервер (Debian stretch, kernel 4.19.0-9-amd64)
Есть кастомная утилита /opt/some-server/some-service, есть пользователь и группа some-service.
При попытке запустить сервис из-под пользователя всё ок. Сервис крутится, нагрузка на процессор особо не возрастает (смотрю в htop, при этом ssh-консоль не лагает)
Определяю сервис в systemd
# /etc/systemd/system/some-service.service
[Unit]
Description=Some service
After=syslog.target
After=network.target
[Service]
Type=idle
User=some-service
Group=some-service
ExecStart=/opt/some-server/some-service
Restart=on-failure
RestartSec=2s
[Install]
WantedBy=multi-user.target
Заспускаю службу
service some-service start
Служба становится доступна извне по нужному порту, как и положено, но грузит процессор на 100%
Пробовал в файле /etc/systemd/system/some-service.service закомментировать строки
#User=some-service
#Group=some-service
В этом случае при запуске сервиса через systemctl процессор грузится так же, как при ручном запуске от юзера, но извне по нужному порту не доступен.
Пробовал менять параметр Type на simple, добавлять Restart (always и on-failure). Результатов не дало.
Подскажите пожалуйста, куда копать?
Ответы (1 шт):
Проблема обнаружилась в том, что сервис читал из stdin. Начинал читать после вывода всех логов, что сбивало с толку. Когда сервис был настроен на работу без stdin, проблема прошла. Большое спасибо всем откликнувшимся!