如何使用 systemd 连接 3G 加密狗?

Mos*_*tor 5 boot arch-linux systemd 3g

启动时,usb-modeswitch自动将加密狗切换到调制解调器模式,设备显示为12d1:1506。在此之后,应该运行一个脚本,连接到 Internet。我不确定是否使用,/etc/rc.local因为 Arch 已经转移到 pure systemd. 如何用systemd术语表达这种依赖性(仅在设备切换后运行脚本)?

udev 规则不能运行长脚本,我的是。

bru*_*tra 4

推荐的方法是启动udev一项systemd服务,这本身取决于您的设备。

服务文件应类似于以下内容:

my.service- 放置在/etc/systemd/system

[Unit]
Description=<DESCRIPTION HERE>
BindsTo=<DEVICE UNIT HERE>.device
After=<DEVICE UNIT HERE>.device

[Service]
ExecStart=<CALL TO SCRIPT HERE>
Run Code Online (Sandbox Code Playgroud)

注意:要获取可用设备单位的列表,请使用

list-units --all --full | grep ".device"
Run Code Online (Sandbox Code Playgroud)

规则udev应该类似于以下内容:

90-my.rules- 放置在/etc/udev/rules.d

KERNEL=="tty*", ATTRS{serial}=="<DEVICE SERIAL HERE>", TAG+="systemd", ENV{SYSTEMD_WANTS}="my.service"
Run Code Online (Sandbox Code Playgroud)

注意:要获取特定设备的属性列表(包括其序列号),请使用

udevadm info -a -n /dev/tty*
Run Code Online (Sandbox Code Playgroud)

这个问题虽然相当不同,但也可能很有趣。