Невозможно переопределить таймер systemd с заданным временем [дубликат]

Если в программе есть файл, открытый при его удалении, ядро ​​только помечает его как удаленный, но не освобождает место на диске, чтобы не нарушить работу программы (оно не может знать, важен ли файл для функция программы). Когда программа закрывает файл, дисковое пространство освобождается. Когда это произойдет, вы увидите «(удалено)», когда посмотрите на / proc / / fd процесс, у которого открыт файл.

Итак, это ядро ​​помогает не удалять файлы, используемые при передаче.

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

Фактически вы можете восстановить файл, скопировав его из / proc / / fd / , поскольку это ссылка на файл (только та, которая существует только до тех пор, пока процесс открыт. ).

root@mypc:~# pgrep transmission
1470
root@mypc:~# cd /proc/1470/fd
root@mypc:/proc/1470/fd# ls -l | grep deleted
lr-x------ 1 user user 64 Dec  8 02:55 56 -> /mnt/download/my.file (deleted)
root@mypc:/proc/1470/fd# cp 56 /mnt/download/myrestored.file
4
04.11.2018, 11:08
1 ответ

Блоки таймера systemd могут принимать несколько OnCalendar=спецификаций, поэтому, когда вы создаете переопределение для запуска в 3 часа ночи, вы на самом деле добавляете это время (, заставляя его запускаться два раза в день, в полночь и 3 часа ночи.)

Когда вы перечислите таймер, он покажет вам следующее расписание для него, и, если вы не запустите эту команду между полуночью и 3 часами ночи, вы увидите исходный запуск в полночь, что может создать у вас впечатление, что ваша конфигурация не сработала. (Если вы установите для него значение hourly, вы, скорее всего, увидите изменения, если только вы не запустите команду между 23:00 и полуночью.)

Чтобы изменить ежедневные запуски cron так, чтобы они запускались в 3 часа ночи с помощью файла переопределения, просто сначала очистите предыдущее определение (daily), что можно сделать, установив для OnCalendar=пустое значение.

[Timer]
OnCalendar=
OnCalendar=*-*-* 03:00:00

man-страница systemd для таймеров на самом деле документирует это, хотя вы найдете ее в разделеOnActiveSec=и друзьях , где говорится:

If the empty string is assigned to any of these options, the list of timers is reset, and all prior assignments will have no effect.

10
27.01.2020, 20:54

Теги

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