ランダムな時間中にシャットダウンを遅らせる最良の方法は何ですかsystemd
?
私は次のユニットを試しています:
root@ip-172-30-3-65:~# cat /etc/systemd/system/delay_by30.service
[Unit]
Description=Delay Shutdown by 30 sec.
#Before=apache2 nginx php5-fpm
[Service]
Type=oneshot
ExecStart=/bin/echo
ExecStop=/bin/sleep 30
[Install]
WantedBy=multi-user.target
しかし、私が得た結果は非常に混乱しています。まず、私の行は何とかExecStop
実行され続けていますが、期待どおりに実行されません。タイムスタンプは次のことを確認します。systemctl start
ExecStart
systemctl stop
journalctl
root@ip-172-30-3-65:~# systemctl enable delay_by30.service
Created symlink from /etc/systemd/system/multi-user.target.wants/delay_by30.service to /etc/systemd/system/delay_by30.service.
root@ip-172-30-3-65:~# systemctl start delay_by30.service
root@ip-172-30-3-65:~# systemctl stop delay_by30.service
root@ip-172-30-3-65:~# journalctl -n 4 -u delay_by30
-- Logs begin at Fri 2017-01-06 17:05:34 GMT, end at Mon 2017-01-09 15:57:34 GMT. --
Jan 09 15:55:59 ip-172-30-3-65 systemd[1]: Starting Delay Shutdown by 30 sec....
Jan 09 15:56:29 ip-172-30-3-65 systemd[1]: Started Delay Shutdown by 30 sec..
Jan 09 15:57:34 ip-172-30-3-65 systemd[1]: Stopped Delay Shutdown by 30 sec..
答え1
RemainAfterExit=yes
セクションに追加する必要があります[Service]
。 systemdはプロセス(/bin/echo
)の終了を確認し、この時点でサービスが終了したと考えて停止します。
(ラインなしでもできますが、ExecStart
テストしませんでした。)