Как включить системные таймеры и сервисы пользователя для Grive2?

Я установил консольный клиент Grive2 для Google Drive, выполнив следующие действия:

sudo add-apt-repository ppa:nilarimogard/webupd8  
sudo apt-get update  
sudo apt-get install grive 

Затем я создал папку для синхронизации и авторизовался в моей учетной записи Google:

mkdir ~/GoogleDrive
cd GoogleDrive
grive -a

Затем я перезагружаю свою систему и не могу найти никаких служб для grive,
Поэтому я попытался исследовать список файлов, установленных grive пакет:

$ dpkg -L grive
/.
/usr
/usr/lib
/usr/lib/grive
/usr/lib/grive/grive-sync.sh
/usr/lib/systemd
/usr/lib/systemd/user
/usr/lib/systemd/user/grive-changes@.service
/usr/lib/systemd/user/grive-timer@.service
/usr/lib/systemd/user/grive-timer@.timer
/usr/bin
/usr/bin/grive
/usr/share
/usr/share/doc
/usr/share/doc/grive
/usr/share/doc/grive/changelog.Debian.gz
/usr/share/doc/grive/copyright
/usr/share/man
/usr/share/man/man1

Вот 3 интересных systemd-Похожие материалы:

$ dpkg -L grive | grep systemd/user/
/usr/lib/systemd/user/grive-changes@.service
/usr/lib/systemd/user/grive-timer@.service
/usr/lib/systemd/user/grive-timer@.timer

Их содержание таково:

$ cat /usr/lib/systemd/user/grive-changes@.service
[Unit]
Description=Google drive sync (changed files)

[Service]
ExecStart=/usr/lib/grive/grive-sync.sh listen "%i"
Type=simple
Restart=always
RestartSec=30

[Install]
WantedBy=default.target

$ cat /usr/lib/systemd/user/grive-timer@.service
[Unit]
Description=Google drive sync 
After=network-online.target

[Service]
ExecStart=/usr/lib/grive/grive-sync.sh sync "%i"

$ cat /usr/lib/systemd/user/grive-timer@.timer
[Unit]
Description=Google drive sync (fixed intervals)

[Timer]
OnCalendar=*:0/5
OnBootSec=3min
OnUnitActiveSec=5min
Unit=grive-timer@%i.service

[Install]
WantedBy=timers.target

Так что кажется, что grive имеет внутреннюю функциональность для автоматизации синхронизации.
И нет необходимости изобретать другой велосипед с cron планировщик.

Но я не знаком с systemd пользовательские таймеры и сервисы.

Нашел пост на форуме в ArchLinux, но не могу понять, как его объединить с файлами grive.

Что я должен сделать, чтобы включить grive услуги и таймеры?

1 ответ

Решение

Ваш вопрос дал мне правильную подсказку, чтобы взглянуть на сопровождающий системный пользовательский таймер / сервис grive2.

Только недавно ответ на ваш вопрос был добавлен в README.md в репозитории grive2 github. Взгляните на раздел README о системных синхронизациих. По сути вы звоните:

# 'google-drive' is the name of your Google Drive folder in your $HOME directory
systemctl --user enable grive-timer@$(systemd-escape google-drive).timer
systemctl --user start grive-timer@$(systemd-escape google-drive).timer
systemctl --user enable grive-changes@$(systemd-escape google-drive).service
systemctl --user start grive-changes@$(systemd-escape google-drive).service

С уважением

RA

Другие вопросы по тегам