Systemd Timer не имеет триггера

  1. Вам нужно отключить ведение журнала, если вы хотите писать в него из Ubuntu. Ubuntu поддерживает только запись в тома HFS+ без журналирования -. Отключение ведения журнала из HFS+ по-прежнему возможно до OS X Yosemite 10.10

    .

    На вашем Mac:

    • Откройте «Дисковую утилиту» в разделе «Приложения» -> «Утилиты»
    • Выберите том, для которого необходимо отключить ведение журнала.
    • Выберите «Отключить ведение журнала» в меню «Файл». (В более поздних версиях Mac OS вам придется удерживать нажатой кнопку выбора, когда вы выбираете меню «Файл». Или если вам нравится Apple+J)
  2. Теперь подключите жесткий диск HFS+ к Ubuntu и выполните эту команду:

    $ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
    

    пример вывода:

    sda                       
    ├─sda1 vfat     300M     EFI
    
    └─sda2 hfsplus  100G     VolumeName
    

    Таким образом, в этом примере нас интересует только sda2.

    $ sudo apt-get install hfsprogs
    
  3. Создайте папку в своем домашнем каталоге с именем backup и скопируйте полный путь к резервной копии, чтобы поместить его в конце следующей команды:

    $ sudo mount -t hfsplus -o force,rw /dev/sda2 /home/user/backup
    

    Теперь на удачу:

    $ sudo mount -o remount,rw /home/user/backup
    
  4. Теперь для подачи HFS+:

    $ sudo chmod 775 /home/user/backup
    
  5. Тестирование с клеммой:

    $ cd /home/user/backup
    $ mkdir test
    
  6. Теперь проверьте с помощью файлового менеджера, был ли создан тестовый каталог. Но какого черта, файловый менеджер по-прежнему не может писать в HFS+.

    Принудительное представление файлового менеджера

    ### sudo filemanager, for eg.
    $ sudo thunar
    
  7. И теперь, после долгой переделки, у вас теперь есть доступ к HFS+.

    После этого снова подключите диск к Mac, включите ведение журнала и используйте дисковую утилиту для восстановления разрешений.

0
12.06.2021, 11:13
1 ответ

Таймер будет показывать Trigger: n/aдо тех пор, пока юнит, который он запускает, все еще работает. Он не будет пытаться запланировать сервисную службу, которая уже запущена. Триггер таймера будет установлен на следующее подходящее время, когда служба остановится.

Если для выполнения вашей службы mail.service требуется 12 минут, таймер запустит ее один раз, служба будет выполняться в течение 12 минут, затем таймер запланирует ее через 3 минуты, что приведет к 15-минутному интервалу между вызовами.

Итак, ответ "наберитесь терпения". Когда mail.serviceзавершится, он снова запустится в следующие 5 минут.


Вот пример:

# mytime.service
[Service]
Type=oneshot
ExecStart=/bin/sleep 10

# mytime.timer
[Timer]
OnCalendar=*:0/1

Когда я systemctl start mytime.timerувижу это:

$ systemctl --user status mytime.timer mytime.service
● mytime.timer - Test timer
     Active: active (waiting) since Sat 2021-06-12 10:56:01 CEST; 725ms ago
    Trigger: Sat 2021-06-12 10:57:00 CEST; 59s left

● mytime.service
     Active: inactive (dead)

Во время выполнения службы мы увидим:

$ systemctl --user status mytime.timer mytime.service
● mytime.timer - Test timer
     Active: active (running) since Sat 2021-06-12 10:56:01 CEST; 1min ago
    Trigger: n/a

● mytime.service
     Active: activating (start) since Sat 2021-06-12 10:57:00 CEST; 10ms ago
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/mytime.service
             └─11346 /bin/sleep 10

Как только sleep 10выйдет,триггер будет установлен:

$ systemctl --user status mytime.timer mytime.service
● mytime.timer - Test timer
     Active: active (waiting) since Sat 2021-06-12 10:56:01 CEST; 1min 11s ago
    Trigger: Sat 2021-06-12 10:58:00 CEST; 49s left

● mytime.service
     Active: inactive (dead) since Sat 2021-06-12 10:57:10 CEST; 1s ago
    Process: 11346 ExecStart=/bin/sleep 10 (code=exited, status=0/SUCCESS)
3
28.07.2021, 11:25

Теги

Похожие вопросы