เป็นวิธีที่ถูกต้องในการเขียนกฎ 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 …