Сервис Systemd прерывает процесс шины CAN - PullRequest
0 голосов
/ 25 июня 2019

Я создал программу, которая взаимодействует с оборудованием по шине CAN.Когда я запускаю свою программу через CLI, кажется, что все работает нормально, но запуск процесса через службу Systemd приводит к приостановленному трафику

Я создаю систему, которая взаимодействует с оборудованием по шине CAN.Когда я запускаю свою программу через CLI, кажется, все работает нормально, я определю это через секунду.Затем я создал системные службы, как показано ниже, для автоматического запуска процесса при включении системы.

Построив временные метки журнала, мы заметили, что в CAN-трафике периодически возникают паузы, от 250 мс до нескольких секунд, каждые 5 или около того минут (не обычная скорость) в течение 30-минутного окна.Если мы переключимся обратно на запуск через CLI, мы можем получить одно падение на 100 мс за 3-часовой период, что, по сути, не проблема.

Технически, мы можем допускать такие паузы в трафике, но проблема в том, что мыне понимаю причину этих пропущенных сообщений (запуск через systemd против запуска вручную через командную строку).

У кого-нибудь есть подозрения, что здесь происходит?

Другие примечания: - Мы не используем какие-либо переменные или параметры среды (читайте через конфигурационный файл).- Мы только что наблюдали за трафиком CAN, когда ничего не работало, без падений, поэтому мы уверены, что это не наш аппаратный драйвер / драйвер socketCAN. - Мы пробовали запускаться через службы на ноутбуке Arch и не видели такого паузы.1011 *

[Unit]
Description=Simple service to start CAN C2 process 

[Service]
Type=simple
User=dzyne
WorkingDirectory=/home/thisguy/canProg/build/bin
ExecStart=/home/thisguy/canProg/build/bin/piccolo
Restart=on-failure 
# or always, on-abort, etc
RestartSec=5

[Install]
WantedBy=multi-user.target

Я бы ожидал, что между сообщениями, размер которых превышает ~ 20-100 мс, не допускается пауза, наш допуск при запуске через системную службу

...