Udevイベントで長いプロセスを実行するには?

Udevイベントで長いプロセスを実行するには?

ピアツーピアUSB モデムが接続されると接続が行われるため、次のudev規則を使用します。

ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="16d8",\
    RUN+="/usr/local/bin/newPPP.sh $env{DEVNAME}"

(私のモデムは/devと読みますttyACM0

新しいPPP.sh:

#!/bin/bash
/usr/bin/pon prov $1 >/dev/null 2>&1 &

質問:

イベントudevが発生し、newPPP.shが実行されていますが、newPPP.sh約4〜5秒後にプロセスが終了します。ppp接続する時間はありません(ダイヤルタイムアウトは10秒です)。

死ぬことなくどのように長いプロセスを実行できますか?

試してみましたが、nohupやはり動作しません。

システム: Arch Linux

修正する

解決策が見つかりましたここありがとうございます。マックスシュレプチガー

at nowudevプロセスとは別にジョブを実行するために使用します。

しかし、1つの質問に対する答えはまだ残っています。なぜ動作しnohup&動作しないのですか?

ベストアンサー1

システムサポートを介してまともなディストリビューションを実行している場合は、最も簡単で技術的に安全な方法は次のようにすることです。機器単位

このように、systemdは長期実行スクリプトを完全に制御し、デバイスがシャットダウン/削除された後にプロセスを適切にシャットダウンすることもできます。プロセスを分離するということは、プロセスの状態と記録のすべての制御を放棄することを意味します。 。

これに加えて、を実行してデバイスと接続されているサービスの状態を確認することもできますsystemctl status my-ppp-thing.device

また、見ることができますこのブログ投稿より多くの例と詳細を確認してください。

おすすめ記事