upstart
箱から出して「USBデバイスが接続されています」信号が付属していないようです。これまでのところ、init とほぼ同じことを行うことに焦点が当てられており、「クールな宣伝機能」は将来的に提供される予定です。
Fedora の wiki から: 「... Upstart 自体が現在 SysV のようにしか機能していなくても、このモデルへのスムーズな移行を開始できるようになります。」
幸いなことに、udev でスクリプトを実行してカスタム upstart シグナルを送信することで、upstart がバックアップ スクリプトを呼び出せるようにすることで、自分で未来を実装できます。udev でバックアップ スクリプトを直接呼び出すこともできます。
udev
には、デバイスが接続されているときと接続されていないときにスクリプトを実行する簡単な方法が既にあります。udev ルールを使用して USB ハード ドライブのデバイス名を変更するを参照してください。私のシステムでudevadm monitor --env
は、チュートリアルのudevmonitor --env
. チュートリアルに従った後、次のような別の udev ルールを作成します。
echo 'SUBSYSTEM=="block", ID_SERIAL_SHORT=="101A9041C67D182E", \
NAME="myusbdrive", \
RUN+="/my/backup/script $env{NAME}"' > /etc/udev/rules.d/S96-mydrive.rules
ID_SERIAL_SHORT
デバイスの実際の ID と、$env{NAME}
スクリプトがバックアップ デバイスを見つけるために必要な udev 環境変数に置き換えます。udev のブロックを回避するために、スクリプトをバックグラウンドで実行する必要がある場合があります。
upstart を使用する場合は、udev ルールを実行してから、行で始まる/sbin/initctl emit back-it-up VARIABLE=$env{VARIABLE} ...
スクリプトを記述できます。/etc/event.d
start on back-it-up
Python で Linux で「usb デバイスが挿入された」イベントをリッスンするにはどうすればよいですか?も参照してください。DBusで同じことを行うためのヒントについては。ログインユーザーにユーザーモードの「バックアップドライブの監視」デーモンを実行させたい場合は、DBusの方が便利かもしれません。