nf
2018年8月22日 16時05分
お世話になります。
Armadillo X1 にて強制電源OFFする方法はありますでしょうか?
G3Lではユーザスイッチの長押しで電源OFFできましたが、X1 では効かないようです。
コメント
溝渕様
ご回答ありがとうございました。
頂いたリンクに含まれている input-poweroffd を用いて、ユーザスイッチ長押しで電源OFF出来るようになりました。
ご参考として、手順を記載します。
systemd の service ファイルは、ご提示頂いたtarに含まれているファイルを流用させていただきました。
atmark@armadillo:~$ cd /tmp/ atmark@armadillo:/tmp$ wget https://download.atmark-techno.com/debian/pool/main/a/atmark-x1-base/atmark-x1-base_1.5.6.orig.tar.gz atmark@armadillo:/tmp$ tar xzvf atmark-x1-base_1.5.6.orig.tar.gz atmark@armadillo:/tmp$ cd atmark-x1-base/ atmark@armadillo:/tmp/atmark-x1-base$ cd input-poweroffd/ atmark@armadillo:/tmp/atmark-x1-base/input-poweroffd$ make atmark@armadillo:/tmp/atmark-x1-base/input-poweroffd$ su Password: root@armadillo:/tmp/atmark-x1-base/input-poweroffd# cp input-poweroffd /usr/sbin/ root@armadillo:/tmp/atmark-x1-base/input-poweroffd# vi /lib/systemd/system/input-poweroffd.service ======================= [Unit] Description=input event poweroff daemon After=rc-local.service [Service] Type=forking ExecStart=/usr/sbin/input-poweroffd -d /dev/input/event1 -k KEY_1 -D ExecStop=/bin/kill -INT ${MAINPID} [Install] WantedBy=multi-user.target ======================= root@armadillo:/tmp/atmark-x1-base/input-poweroffd# systemctl enable input-poweroffd root@armadillo:/tmp/atmark-x1-base/input-poweroffd# systemctl start input-poweroffd
y.nakamura
中村です。
> ご参考として、手順を記載します。
> [Service]
> Type=forking
> ExecStart=/usr/sbin/input-poweroffd -d /dev/input/event1 -k KEY_1 -D
> ExecStop=/bin/kill -INT ${MAINPID}
この部分、コメントさせてください。
通常、Type=forking でプログラム自身でデーモン化する場合は、
PIDFile=xxx でpidファイルを指定することになっています。
systemdはforkした子プロセスのpidをPIDFileで知ることができます。
この設定のまま動かしてみたところ、
systemdのGuessMainPIDの機能によって(デフォルトはyes)、
forkした子プロセスのpidを取得(推測)できているようですが、
これに頼るのは、あまりよくないと思います。
Type=forking にせず、input-poweroffd の"-D"はつけない方が
いいのではないでしょうか?
// G3Lに入っているinput-poweroffdは、start/stopのスクリプトを
// 用意していますが、ここではその話はしないことにします。
--
なかむら
at_mizo
2018年8月22日 16時58分
溝渕です。
> Armadillo X1 にて強制電源OFFする方法はありますでしょうか?
> G3Lではユーザスイッチの長押しで電源OFFできましたが、X1 では効かないようです。
標準では用意していません。
G3Lでは、input-poweroffdというデーモンがユーザースイッチを監視し、10
秒間長押しすることで、poweroffコマンドを実行しています。
input-poweroffdが含まれるatmark-x1-baseパッケージのソースは以下より取得可能です。
https://download.atmark-techno.com/debian/pool/main/a/atmark-x1-base/at…