文書/etc/udev/rules.d/90-test.rules
:
ACTION=="add", SUBSYSTEM=="usb", ENV{DISPLAY}=":0", ENV{HOME}="/home/user", RUN+="/etc/udev/rules.d/test.sh"
文書/etc/udev/rules.d/test.sh
:
#!/usr/bin/env bash
/usr/bin/kcalc &
USBデバイスを接続すると、kcalcが期待どおりに起動します(ルールが簡単なので2回)。しかし、4〜5秒後、kcalcは再び閉じます。私もnohup
これを試しましたが、成功しませんでした。などの他のアプリケーションでもkonsole
同じ現象が発生しますkate
。
kcalcをバックグラウンドで実行しないと(no &
)は終了しませんが、追加の処理がブロックされるようです。デバイス通知は、kcalcをオフにした場合にのみ通知を送信します。このソリューションは、システムの他の部分に影響を与えるので、気に入らない。
それでは、アプリが閉じられる理由とそれを防ぐ方法は何ですか?
ベストアンサー1
~からudev マンページ
デーモンや他の長期実行プロセスを開始することはudevには適していません。切り離されたかどうかにかかわらず、分岐されたプロセスはイベント処理が完了した後に無条件に終了します。
したがって、最善の方法は、次のように最終起動スクリプトをudev
トリガーするサービスを使用することです。systemd
RUN{program}="/bin/systemctl start my_service.service"
.service
その中に適切なファイルを作成する必要があります。