デーモンとして機能する簡単なスクリプトを書きたいです。このデーモンがしなければならない唯一のことは、与えられた時間内にキーを押さなかったのか、マウスを動かしたのか、タッチパッドをタッチしたのかを確認するだけです。そのような場合は、コンピュータをシャットダウンする必要があります。
このプログラムには1つの条件と1つのタスクしか含まれていないため、非常に単純なプログラムであることを知っていますが、このアイドル状態を確認する方法がわかりません。
ベストアンサー1
次のことができます(テストされておらず、Linuxでのみ機能します)。
#!/bin/zsh
TIMEOUT=6000 # hundredths of seconds; in this case, 10 minutes
zmodload zsh/system
zmodload zsh/zselect
for i in /dev/input/*; do
[[ -c "$i" ]] && sysopen -r -o cloexec -u fd "$i"
dev=($dev[@] $fd)
done
while zselect -t $TIMEOUT $dev; do
sleep 5
done
# timeout occurred
shutdown -h now
しかし、これはまだ技術的にシェルスクリプトです。 :)
また、起動後に他の入力デバイスを接続すると正しく機能しません(無視されます)。