Debian Busterがスリープモードに入る前に、カスタムコマンドを実行する必要があります。これ文書スクリプトを /etc/pm/sleep.d ディレクトリに配置することを示します。次のスクリプトを作成します。
#!/bin/sh
echo "`date` script started" >> scriptStarted.txt
case "$1" in
hibernate|suspend)
/home/<user-name>/scripts/killProcess.sh
;;
thaw|resume)
;;
*) exit $NA
;;
esac
問題は、スクリプトが実行されないことです。
/usr/lib/pm-utils/sleep.d/ディレクトリも試しましたが、問題は同じです。
ベストアンサー1
問題は、Debian Busterがpmではなくsystemdを使用していることです。
スクリプトを /lib/systemd/system-sleep に入れると、システムがハングする前に実行されます。
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
case "$1" in
pre)
echo "`date` pre suspending executed" >> /home/<user-name>/scripts/execution.log
#code execution BEFORE sleeping/hibernating/suspending
;;
post)
#code execution AFTER resuming
;;
esac
exit 0
ただし、休止状態では、このソリューションはまだ機能しません。システムが休止状態の場合、このスクリプトは実行されません。
最後に、カスタマイズされたサービスを作成しました。 my-hibernate.serviceファイルを/usr/lib/systemd/systemに配置しました。
[Unit]
Description=Some description
Before=hibernate.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/<user-name>/scripts/my-script.sh
[Install]
WantedBy=hibernate.target
次にサービスを有効にしました。
sudo systemctl enable my-hibernate.service
この手順を完了すると、休止状態の前にカスタムスクリプトが実行されます。