Форум русскоязычного сообщества Ubuntu


Автор Тема: Подскажите про systemd.service  (Прочитано 282 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kekerovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Подскажите про systemd.service
« : 10 Сентябрь 2017, 13:15:56 »
Пользуюсь google drive и синхронизирую через cron. Но это не совсем удобно т.к. часто нужно синхронизировать только по изменению а не по времени. Нашел инфу про systemd юниты и примеры. Вот сделал 2 юнита
grive.path
[Path]
PathChanged=/home/joe/gdrive/*

[Install]
WantedBy=default.target
grive.service
[Unit]
Description=grive

[Service]
Type=simple
ExecStart=/home/joe/scripts/backup/gdrive.sh

[Install]
WantedBy=default.target
Сам gdrive.sh
#!/bin/sh

cd /home/joe/gdrive && grive
По описанию в мане PathChanged реагирует на все изменения в файлах при закрытии этого файла. Вот я тестирую:
gedit gdrive/1.txt
пишу туда текст, закрываю. А юнит не работает. Статус inactive(dead) типо он не активировался по условию path. Пробую ставить PathModified который должен при любом изменении без закрытия работать и с ним та же фигня. По статусу юнит все так же
systemctl --user status grive.service
● grive.service - grive
   Loaded: loaded (/home/joe/.config/systemd/user/grive.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
Пробовал и daemon-reload и restart но че то не работает он и не пойму я почему. Подскажет кто?

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4307
  • Capture the truth
    • Просмотр профиля
Re: Подскажите про systemd.service
« Ответ #1 : 10 Сентябрь 2017, 13:30:33 »
journalctl -u grive
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн kekerovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: Подскажите про systemd.service
« Ответ #2 : 10 Сентябрь 2017, 13:38:31 »
journalctl -u grive
Если имели ввиду
journalctl --user grive.serviceили
journalctl --user grive.pathто вот
journalctl --user -u grive.service
Sep 10 13:07:05 arch systemd[4357]: Started grive.
Sep 10 13:07:07 arch gdrive.sh[27555]: Reading local directories
Sep 10 13:07:07 arch gdrive.sh[27555]: Reading remote server file list
Sep 10 13:07:08 arch gdrive.sh[27555]: Synchronizing files
Sep 10 13:07:09 arch gdrive.sh[27555]: sync "./TEST" changed in local. uploading
Sep 10 13:07:10 arch gdrive.sh[27555]: sync "./TEST_DIR" doesn't exist in server, uploading
Sep 10 13:07:12 arch gdrive.sh[27555]: Finished!

journalctl --user -u grive.path
Sep 10 13:32:21 arch systemd[4357]: Started grive.path.

Обновления который записаны в сервисе это при принудительном рестарте сервиса. В реальном времени он не обновляет. Я так думаю если бы работала PathChanged или PathModified в юните то в логе эти события бы обозначались а значит path не видит изменений но вот почему я не знаю.

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4307
  • Capture the truth
    • Просмотр профиля
Re: Подскажите про systemd.service
« Ответ #3 : 10 Сентябрь 2017, 13:43:52 »
звёздочку уберите
PathChanged=/home/joe/gdrive/*
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн kekerovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: Подскажите про systemd.service
« Ответ #4 : 10 Сентябрь 2017, 13:46:18 »
звёздочку уберите
PathChanged=/home/joe/gdrive/*
Без звeздочки он не будет рекурсивно видеть директорию и будет обновлять только файлы/папки лежащие в gdrive/ а не например в gdrive/dir1/

Пользователь добавил сообщение 10 Сентябрь 2017, 13:53:25:
А нет любые path'ы вообще никак не видят директорию рекурсивно и нужно добавлять все подкатегории вручную... Значит схема через systemd бесполезна при большоем количесвте субдиректорий.
« Последнее редактирование: 10 Сентябрь 2017, 13:53:25 от kekerovich »

 

Страница сгенерирована за 0.109 секунд. Запросов: 22.