私は Arch ベースの Manjaro Linux を実行しており、7 時間ごとに開始され、完全にバックグラウンドで実行される小さな更新プログラムを自分で作成しました。この更新プログラムは、systemd によって開始されます。
私が知りたいのは、ユーザーが単にオフにしたい場合でも、プログラムがオフにしたい場合でも、このプログラムの実行中にシステムのシャットダウン/再起動を防ぐにはどうすればよいかということです。
最善の方法は、シャットダウン/再起動アクションがキャンセルされずに遅延される場合です。そのため、更新プログラムの実行が終了すると、シャットダウン/再起動が続行されます。
私のsystemdパーツは次のとおりです。
uupgrades.timer
[Unit]
Description=UU Upgrades Timer
[Timer]
OnBootSec=23min
OnUnitActiveSec=7h
Unit=uupgrades.target
[Install]
WantedBy=basic.target
uupgrades.target
[Unit]
Description=UU Upgrades Timer Target
StopWhenUnneeded=yes
およびフォルダー内uupgrades.target.wants
uupgrades.service
[Unit]
Description=UU Update Program
[Service]
Nice=19
IOSchedulingClass=2
IOSchedulingPriority=7
ExecStart=/usr/bin/uupgrades
どうすればこれを達成できますか?