系统服务中断CAN总线过程

时间:2019-06-25 00:28:45

标签: linux systemd archlinux can-bus arch

我编写了一个通过CAN总线与硬件通信的程序。当我通过CLI启动程序时,一切似乎都运行良好,但是通过Systemd服务启动进程会导致流量暂停

我正在建立一个通过CAN总线与硬件通信的系统。当我通过CLI启动程序时,一切似乎都运行良好,我将在一秒钟内进行量化。 然后,我创建了systemd服务,如下所示,以在系统启动时自动启动该过程。

通过绘制日志时间戳,我们注意到CAN流量在30分钟窗口内每5分钟左右(不是固定速率)在250ms到几秒钟之间的周期性停顿。如果我们切换回通过CLI进行启动,则在3个小时内可能会下降100ms,基本上没有问题。

从技术上讲,我们可以容忍流量中的这种暂停,但是问题是我们不了解这些丢失的消息的原因(通过systemd运行还是通过命令行手动启动)。

有人知道这里发生了什么吗?

其他说明: -我们不使用任何环境变量或参数(通过配置文件读取)。 -我们刚刚观察到CAN流量没有运行,没有掉线,因此我们非常有信心这不是我们的硬件/ socketCAN驱动程序 -我们尝试通过Arch笔记本电脑上的服务开始,但没有看到这种暂停行为。

[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毫秒(我们的容忍度)以上的消息之间不会暂停

0 个答案:

没有答案