[systemd / udev] ppp:システム全体のデーモンの正しい自動起動

usb_modeswitch



パッケージには通常、モデムモードを自動的に切り替えるための定義済みのudevルールが付属しています。 ppp



、それとは独立して、それ自体とは別に、悪魔のためのサービスを含んでいます。 これらの構成は互いに独立しています。













それらを同時に使用すると、 競合が発生する可能性がありますusb_modeswitch -J



モデムを切り替える前にpppd



が起動します。







RestartSec=5s



Restart=on-failure



することができますが、それはスポーツですか?







「ただ救われたくて...」収束



まず、usb_modeswitch.conf- DisableSwitching=yes



編集しDisableSwitching=yes



。 このファイルは「デフォルト」ルールで暗黙的に使用されます-干渉はしませんが、有用ではありません。







systemctl disable ppp@….service



multi-user.target



からユニットをmulti-user.target



する必要はなくなりました。 [Install]



もはや有用で[Install]



ません。







別の方法で-それを再び動作させるために残っています。







「目を覚まして再び殺人を起こそう。」PsyOpus



新しいudevルールは、以前に提起された問題を解決することを目的としています。最初にusb_modeswitch



タスクを伝え、それからsystemdに連絡する必要があります。







USBサブシステムでは、デバイスはidVendor



idProduct



2つの属性識別子で定義できます。 それらはlsusb thで見ることができます-それらはそれぞれ「ID」の後にあります。







上記は、新しい構成の最初の行にほぼ正確に対応しています。







 $ su - $ cd /etc/udev/rules.d $ cat > 20-provider-modem.rules <<< …
      
      





 SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="…", ATTR{idProduct}=="…", RUN+="/usr/sbin/usb_modeswitch -v $attr{idVendor} -p $attr{idProduct} -J"
      
      





-番号体系( 0x



)を指定する必要はありません。







次に、別のサブシステムの検討にttyUSB0



ますttyUSB0



私たちにとって重要です。 繰り返しますが、私たちはお気に入りのテキストエディタを使用します。







 $ cat >> 20-provider-modem.rules <<< …
      
      





 SUBSYSTEM=="tty", KERNEL=="ttyUSB0", TAG+="systemd", ENV{SYSTEMD_WANTS}="ppp@provider.service"
      
      





-ここで適切なタイミングでudevがsystemdにppp@



を起動する可能性を伝えます。







最後に:







 $ udevadm control --reload
      
      





「苦痛をやめるだけで、それは私の心、あなたがかける圧力に重きを置いている...」TesseracT



systemdとudevの関係に関する intelfxの推論に興味がありました。







udevとsystemdは、互いに補完する非常に強力なフレームワークです。



systemdは依存関係モデルに基づいています。Yが使用可能な場合はXを実行します。

udev-イベントモデル:Yが使用可能になったら、Xを実行します。

ユーザー空間とカーネルの接続は、非常に表現力豊かに強調されており、これは感心せざるを得ません。 実証済みの例-少し前途有望または平凡かもしれません-は、このツールの可能性を完全に明らかにしています。








All Articles