编写udev规则以停止systemd下的服务的正确方法是什么
我正在运行Arch Linux,并且具有udev规则,该规则可在插入设备时启动服务。在这种情况下,当插入3G调制解调器时,它将拨打连接。 KERNEL=="ttyUSB*", SYMLINK=="gsmmodem", TAG+="systemd", ENV{SYSTEMD_WANTS}="netcfg@wvdial.service" 但是,如果卸下了该设备,systemd将不会停止该服务,因此,当再次插入该设备时,由于它已经在运行,因此它不会启动该服务。 我需要的是一条匹配的udev规则,该规则将在卸下设备以停止服务时运行。 更新资料 使用下面的答案,我现在拥有的是以下udev规则 KERNEL=="ttyUSB*", SYMLINK=="gsmmodem", TAG+="systemd", ENV{SYSTEMD_WANTS}="vodafone.service" 带有以下服务文件(基本上是从netcfg服务文件复制并粘贴的): [Unit] Description=Netcfg networking service for Vodafone Dongle Before=network.target Wants=network.target BindsTo=dev-gsmmodem.device After=dev-gsmmodem.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/netcfg check-iface wvdial ExecStop=-/usr/bin/netcfg down wvdial KillMode=none [Install] WantedBy=multi-user.target 我正在使用netcfg-wvdialAUR进行拨号。