LINUX.ORG.RU

Сервис запуска скрипта от пользователя

 


0

1

Проблема: не срабатывает последняя строка скрипта, запущенного через сервис по таймеру, yandex-disk не стартует автоматом.

Содержание скрипта backup2.sh

#!/bin/bash
if pgrep yandex-disk; then
yandex-disk stop
fi

rm -r /home/user/.config/yandex-disk
ln -s /home/user/yandex-conf/disk2 /home/user/.config/yandex-disk
yandex-disk start
sleep 60
yandex-disk stop
rm -r /home/user/.config/yandex-disk
ln -s /home/user/yandex-conf/disk1 /home/user/.config/yandex-disk
yandex-disk start

Содержание сервиса backup.service

[Unit]
Description=Backup clouds

[Service]
ExecStart=
ExecStart=/usr/bin/bash /home/user/backup/backup1.sh
ExecStart=/usr/bin/bash /home/user/backup/backup2.sh
Type=oneshot
 
[Install]
WantedBy=multi-user.target

Таймер и сервис расположены в папке пользователя, включены от пользователя, запускаются от пользователя. Сервис успешно завершается после работы скрипта.

Не могу понять в чём ошибка такой работы скрипта.


Без логов тебе никто ничего не скажет наверняка.

Почему rm -r? Уверен, что yandex-disk stop дожидается смерти сервиса?

Тебе лучше сделать всё иначе. Запусти два контейнера с Яндекс диском и монтируй в них нужные директории, пусть работают параллельно без костылей.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Сервис остаётся в работе пока скрипт не завершит работу, это видно. Запускал сервис вручную.

Ставил задержку в 5 секунд перед командой rm, в процессах видно, что yandex-disk стартанул (последняя строка скрипта). Т.е. скрипт отработал, далее сервис завершает работу и прибивает yandex-disk. Не ясно почему завершение сервиса прибивает yandex-disk.

С контейнерами не знаком, надо изучать.

dima81
() автор топика
Последнее исправление: dima81 (всего исправлений: 1)

Чисто теоретически...

В systemd есть какой-то automount. Может его можно сконфигурировать?

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