Interface 启动时使用systemd启用vcan0接口
只是想找到最方便的方法,在引导时使用systemd启用vcan0(socketcan)接口。我目前的解决方案如下所述。首先,一个脚本,用于检查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
$ 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
进行写和读