LINUX.ORG.RU
ФорумAdmin

Выполнение скрипта при завершении работы (Arch Linux, Unit)

 


0

2

Добрый день! Написал скрипт который архивирует некоторые папки, два образа из Docker и дамп SQL базы из контейнера. Так же он удаляет старые бэкапы. Весь процесс занимает до 10 сек. Хочу чтобы выполнение этого скрипта было при выходе в сон, выключении, гибернации и т.д. Сделал его юнитом (/etc/systemd/system/backup-project.service), при остановки службы он выполняется всё нормально. Но стал тестировать уже при отключении и он не успевает выполниться. Только архив каталога, и нулёвый дамп SQL. Подозрение что когда он выполняется Docker служба завершается. Если закинуть в crontab:

@reboot /usr/local/Scripts/backup-project.sh
Всё нормально работает, только мне мало при ребуте его выполнение. Подскажите пожалуйста как можно выставить чтобы Docker юнит не завершался пока моя служба работает? Система Arch Linux.
[Unit]
Description=Backup project
After=systemd-user-sessions.service

[Service]
ExecStop=/bin/bash '/usr/local/Scripts/backup-project.sh'
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target reboot.target poweroff.target hibernate.target sleep.target

Ответ на: gitlab.com/vazhnov/backup_linux_on_shutdown от LeNiN

странно но дефолтный таймаут достаточно продолжительный для выполнения команды.

$ systemctl show d3.service | grep Stop
TimeoutStopUSec=1min 30s
CanStop=yes
StopWhenUnneeded=no
RefuseManualStop=no
может почитать по остальные параметры со *Stop*

pfg ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.