VirtualBoxで終了イベントワークフローを追跡する方法

VirtualBoxで終了イベントワークフローを追跡する方法

こんにちは、debian 9virtualboxを利用してインストールしました。 ACPIをサポートするためにカーネルを次のようにカスタマイズしました。

Power management and ACPI options  --->
    [*] ACPI (Advanced Configuration and Power Interface) Support  --->
        <M>   Button

オプション付きのvirtualboxウィンドウの閉じるボタンをクリックしてもsend the shutdown signal何も起こりません

buttonカーネルモジュールが接続されていることを確認しました。

# lsmod | grep button
button                  5539  0

Linux debian 4.9.0-1-amd64 #1 SMP Debian 4.9.2-2 (2017-01-12) x86_64 GNU/LinuxDebianの公式カーネルと send the shutdown signalオプションで起動すると、すべてがうまく機能します。 systemdはpoweroffコマンドのようにシャットダウンを開始します。

私も修正しようとしました。/etc/systemd/logind.conf

HandlePowerKey=ignore

その後、再起動して終了信号を再送信しましたが、期待どおりに無視されました。

acpidイベントを処理するために実行中のものはありません。logind.confイベントを変更するとsystemdが適用されるため、シグナルはsystemdによってのみ処理されます。

カスタムが終了シグナルを認識させるにはどうすればよいですか? (buttonこれでモジュールのみがコンパイルされロードされます。)他のカーネルオプションが必要ですか?

答え1

今理解しています。システムソースコードを追跡した後は、src/login/logind-button.c 次のようになります。/dev/input/

そのため、カーネル構成でこれを有効にし、現在は正常に終了します。

Device Drivers  --->
    Input device support  --->
         <M>   Event interface

関連情報