Interface 启动时使用systemd启用vcan0接口

Interface 启动时使用systemd启用vcan0接口,interface,systemd,boot,can-bus,Interface,Systemd,Boot,Can Bus,只是想找到最方便的方法,在引导时使用systemd启用vcan0(socketcan)接口。我目前的解决方案如下所述。首先,一个脚本,用于检查vcan0是否已启用,并在尚未启用时进行设置 $ cat /usr/bin/vcan0.sh #! /bin/sh ifconfig vcan0 > /dev/null 2>&1 RET=$? if [ $RET -ne 0 ]; then ip link add name vcan0 type vcan ip link

只是想找到最方便的方法,在引导时使用systemd启用vcan0(socketcan)接口。我目前的解决方案如下所述。首先,一个脚本,用于检查vcan0是否已启用,并在尚未启用时进行设置

$ cat /usr/bin/vcan0.sh
#! /bin/sh
ifconfig vcan0 > /dev/null 2>&1
RET=$?
if [ $RET -ne 0 ]; then
    ip link add name vcan0 type vcan
    ip link set dev vcan0 up
fi
然后,一个单元服务调用上一个脚本:

$ cat /lib/systemd/system/vcan0.service 
[Unit]
Description=Bring-up vcan0
[Service]
Type=forking
User=root
ExecStart=/usr/bin/vcan0.sh
[Install]
WantedBy=multi-user.target

您能推荐一些更好或更方便的方法来使用systemd实现此功能吗?提前谢谢

我已经使用systemd的netdev功能解决了id问题

使用以下内容创建netdev配置文件
/etc/systemd/network/vcan0.netdev

[NetDev]
Name=vcan0
Kind=vcan

[vcan]

使用
sudo networkctl reload
重新加载配置后,您可以看到以下
networkctl列表
输出:

IDX LINK            TYPE     OPERATIONAL SETUP
  1 lo              loopback carrier     unmanaged
  2 eno1            ether    routable    configured
  7 vcan0           can      carrier     unmanaged

3 links listed.
在那之后,我能够从
vcan0
进行写和读