Сделайте systemd сервис, который изменяет/dev/null время изменения

Мне отсортировали мои файлы по дате для легкой работы с новыми файлами. У меня также есть набор журналов, перенаправленных к /dev/null в моем корневом каталоге, который я хотел бы быть показанным в конце. Я пытался создать systemd сервис для этого, но он не работает так или иначе:

$ cat /etc/systemd/system/devnull1975.service 
[Unit]
Description=Change /dev/null modification time to 1975
After=display-manager.target

[Service]
Type=oneshot
ExecStart=/usr/bin/touch -c -t 197501010000 /dev/null

[Install]
WantedBy=default.target

Это работает, если я запускаю его вручную, и это выполняется на перезагрузке. "после того, как менеджер по оформлению" похож на точку где /dev/null был уже создан, но после того, как перезагружают его, все еще имеет текущую дату, stat вывод. Так, кто-либо может видеть, какова проблема?

0
задан 23 February 2017 в 06:14

1 ответ

Во-первых,/dev/null является специальным файлом, не каталогом. Это - основная цель, должен обработать перенаправление stdout и stderr. Когда журналы перенаправляются к папке, они больше не существуют.

Некоторый ссылочный материал, Здесь

Относительно файлов в Вашем корневом каталоге это может лучше для переключения от прямой команды: /usr/bin/touch -c -t 197501010000 /dev/null

Кому:

/usr/local/bin/mynewscript.sh

Хотя использование Ваше собственное новое имя файла. Таким образом с Вашим любимым редактором создает новый файл, добавляет содержание, такое как: (Измените имена соответственно),

#!/bin/bash

/usr/bin/touch -m -t 197501010000 /home/username/.bzr.log
/usr/bin/touch -m -t 197501010000 /home/username/.xsessions-errors.old
/usr/bin/touch -m -t 197501010000 /home/username/.php_history
/usr/bin/touch -m -t 197501010000 /home/username/.recently-used

Набор выполняется на Вашем файле:

chmod 455 /usr/local/mynewscript.sh

Затем измените свой сервисный файл:/etc/systemd/system/devnull1975.service

[Unit]
Description=Changes modified times on log file locate /home/username/
After=graphical-session.target

[Service]
ExecStart=/bin/sh /usr/local/bin/mynewscript.sh
Type=oneshot

[Install]
WantedBy=multi-user.target
Alias=file-touch.service

Используйте следующее, чтобы проверить, что никакие ошибки не найдены с .service файлом

systemd-analyze verify /etc/systemd/system/devnull1975.service

Обратитесь к этой ссылке для получения дополнительной информации о systemd.

2
ответ дан 3 November 2019 в 17:16

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

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