मैं आर्क लिनक्स चला रहा हूं, और मेरे पास एक udv नियम है जो एक डिवाइस को डालने पर एक सेवा शुरू करता है। इस स्थिति में, यह 3 जी मॉडेम प्लग इन होने पर एक कनेक्शन डायल करता है।
KERNEL=="ttyUSB*", SYMLINK=="gsmmodem", TAG+="systemd", ENV{SYSTEMD_WANTS}="netcfg@wvdial.service"
हालाँकि, यदि उपकरण हटा दिया जाता है, तो systemd सेवा को बंद नहीं करेगा, और इसलिए जब इसे फिर से प्लग किया जाता है, तो यह सेवा शुरू नहीं करेगा, क्योंकि यह पहले से ही चल रहा है।
मुझे जो चाहिए वह है एक मैचिंग udv नियम, जो सेवा को रोकने के लिए डिवाइस को निकालने पर चलता है।
अपडेट करें
नीचे दिए गए उत्तर का उपयोग करते हुए, मेरे पास अब निम्नलिखित udv नियम है
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-wvdial
डायल करने के लिए AUR से उपयोग कर रहा हूं ।