私は、*nix 系を実行している QNAP NAS の CUPS デーモンを更新しようとしています。NAS の起動時に OS システム全体が RAMDISK にロードされるため、起動時に実行され、独自のコードを挿入するスクリプトを作成しました。現在の問題は、USB プリンター ドライバーが cupsd.sh スクリプトを呼び出すようにカーネル アクションをトリガーする必要があることです。
メーカーによると:
Linux カーネルの「USB プリンタ デバイス クラス ドライバ」を変更し、USB プリンタのプラグイン/アウト時にシグナル/メッセージを発行するようにしました。デーモン picd がシグナル/メッセージを受け取った後、cupsd.sh を呼び出して add_printer/del_printer を実行します。
これを実現するにはどうすればいいでしょうか?
答え1
通常、Linux では udev によって実行されますが、QNAP がそれを使用しているかどうかはわかりません。別の方法としては、busybox の mdev があります。システムでどのアプローチが使用されているかを確認し、対応するドキュメントを読んでください。
一般的には、次のように動作します。
- カーネルは新しいデバイスを接続した場合でも生成します。
- ユーザー空間デーモン(udevまたはmdev)はこれらのイベントを監視します。
- イベントは一連のルールを通過し、一致するものが見つかった場合は対応するアクションが実行されます。
- アクションはカスタム スクリプトを実行することです。