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-wvdial
AURからダイヤルを使用しています。