LINUX.ORG.RU
ФорумAdmin

Параллельный запуск одного и того же сервиса

 , , ,


0

2

Каким способом можно определить наличие в автозагрузке у cron и systemd logrotate.service? У меня подозрение, что при загрузке системы и cron, и systemd пытаются запустить данный сервис.

★★★★★

logrotate это не сервис, это просто программа.

Посмотри конфиги крона, есть ли он там или нет, потом посмотри конфиги системд.

Конфиги крона могут быть тут:

/etc/crontab - глобальный системный конфиг

/etc/cron.* - несколько директорий с именем начинающимся на cron.

/var/spool/cron/ - конфиги юзеров, но в них вряд ли

Ещё есть anacron, у него /etc/anacrontab

firkax ★★★★★
()
Ответ на: комментарий от Nurmukh
NEXT                        LEFT          LAST                        PASSED       UNIT                                   ACTIVATES                  >
Mon 2026-06-08 18:09:37 MSK 3min 37s left -                           -            systemd-tmpfiles-clean.timer           systemd-tmpfiles-clean.serv>
Mon 2026-06-08 18:14:36 MSK 8min left     Sun 2026-06-07 13:16:34 MSK 1 day 4h ago apt-daily-upgrade.timer                apt-daily-upgrade.service
Mon 2026-06-08 18:24:37 MSK 18min left    Sun 2026-06-07 12:58:34 MSK 1 day 5h ago astra-policy-expiration-notifier.timer astra-policy-expiration-not>
Mon 2026-06-08 18:31:53 MSK 25min left    Mon 2026-06-08 17:57:26 MSK 8min ago     anacron.timer                          anacron.service
Mon 2026-06-08 18:40:01 MSK 34min left    Mon 2026-06-01 19:11:10 MSK 6 days ago   fstrim.timer                           fstrim.service
Tue 2026-06-09 00:00:00 MSK 5h 53min left -                           -            dpkg-db-backup.timer                   dpkg-db-backup.service
Tue 2026-06-09 00:00:00 MSK 5h 53min left Mon 2026-06-08 17:55:33 MSK 10min ago    logrotate.timer                        logrotate.service
Tue 2026-06-09 01:26:16 MSK 7h left       Sun 2026-06-07 13:17:22 MSK 1 day 4h ago man-db.timer                           man-db.service
Tue 2026-06-09 03:09:19 MSK 9h left       Thu 2026-06-04 18:50:04 MSK 3 days ago   apt-daily.timer                        apt-daily.service
Sun 2026-06-14 03:10:36 MSK 5 days left   Sun 2026-06-07 12:28:55 MSK 1 day 5h ago e2scrub_all.timer                      e2scrub_all.service

10 timers listed.
Pass --all to see loaded but inactive timers, too.
Mischutka ★★★★★
() автор топика
Ответ на: комментарий от Mischutka
Tue 2026-06-09 00:00:00 MSK 5h 53min left Mon 2026-06-08 17:55:33 MSK 10min ago    logrotate.timer                        logrotate.service

таймер запуска logrotate есть. глянь его systemctl cat logrotate.timer

pfg ★★★★★
()
Ответ на: комментарий от pfg
# /lib/systemd/system/logrotate.timer
[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)

[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target 
Mischutka ★★★★★
() автор топика
Ответ на: комментарий от Mischutka

перевожу на человеческий: запускается раз в день плюс/минус один час.
Persistent=true опция конфигурации таймера, гарантирует, что если событие таймера было пропущено из-за выключения системы, оно выполнится один раз при следующей загрузке.

pfg ★★★★★
()
Ответ на: комментарий от firkax

Посмотри конфиги крона, есть ли он там или нет…

Имеется /etc/cron.daily/logrotate с таким содержимым:

#!/bin/sh

# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
    exit 0
fi

# this cronjob persists removals (but not purges)
if [ ! -x /usr/sbin/logrotate ]; then
    exit 0
fi

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit $EXITVALUE
 
Mischutka ★★★★★
() автор топика
Ответ на: комментарий от Mischutka

if [ -d /run/systemd/system ]; then

Он самоотключается если есть указанная директория.

Впрочем, можно заподозревать, что директория эта создаётся не мгновенно (run это же tmpfs и он пустой на старте) и крон успевает отработать до этого.\

/usr/sbin/logrotate /etc/logrotate.conf

Вот перед этой строчкой вставь "date >> /root/cron-logrotate.log" и посмотри создастся ли этот файл.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Он самоотключается если есть указанная директория.

Да, имеется.

Mischutka ★★★★★
() автор топика
Ответ на: комментарий от firkax

Вот перед этой строчкой вставь «date >> /root/cron-logrotate.log» и посмотри создастся ли этот файл.

Файл не создался.

Mischutka ★★★★★
() автор топика
Ответ на: комментарий от Mischutka

Значит всё норм.

Можно ещё /usr/sbin/logrotate временно подменить на (chmod +x) скрипт

#!/bin/sh

date >> /root/logrotate.$$
ps axwwo pid,ppid,user,command >> /root/logrotate.$$

и посмотреть сколько файлов /root/logrotate.цифры создастся в итоге

firkax ★★★★★
()
Ответ на: комментарий от pfg

Удалил файл logrotate из /etc/cron.daily/, но при загрузке по-прежнему выдаётся сбой запуска logrotate.service. Получается, что дело не в параллельном запуске данного сервиса.

Mischutka ★★★★★
() автор топика
Ответ на: комментарий от Mischutka

:) без подробностей ничего не смогу сказать.
спробуй выключить загрузку logrotate везде. и вручную пнуть logrotate.service при этом смотрю journalctl -f

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от Aceler
logrotate state -- version 2
"/var/log/syslog" 2026-6-12-8:24:8
"/var/log/dpkg.log" 2026-6-7-12:37:22
"/var/log/error" 2026-6-7-12:37:22
"/var/log/afick/error.log" 2026-6-12-8:24:8
"/var/log/speech-dispatcher/debug-flite" 2026-6-6-18:0:0
"/var/log/auth.log" 2026-6-7-12:37:22
"/var/log/apt/term.log" 2026-6-7-12:37:22
"/var/log/ppp-connect-errors" 2026-6-6-18:0:0
"/var/log/speech-dispatcher/speech-dispatcher-protocol.log" 2026-6-6-18:0:0
"/var/log/astra-update-service/service.log" 2026-6-7-12:37:22
"/var/log/cups/error_log" 2026-6-6-18:0:0
"/var/log/apt/history.log" 2026-6-7-12:37:22
"/var/log/pm-powersave.log" 2026-6-6-18:0:0
"/var/log/boot.log" 2026-6-12-8:24:8
"/parsec/log/astra/events" 2026-6-7-12:37:22
"/var/log/alternatives.log" 2026-6-7-12:37:22
"/var/log/digsig" 2026-6-6-18:0:0
"/var/log/mail.log" 2026-6-7-12:29:6
"/var/log/debug" 2026-6-7-12:37:22
"/var/log/kern.log" 2026-6-7-12:37:22
"/var/log/cups/access_log" 2026-6-6-18:0:0
"/var/log/aptitude" 2026-6-6-18:0:0
"/var/log/ufw.log" 2026-6-6-18:0:0
"/var/log/speech-dispatcher/speech-dispatcher.log" 2026-6-6-18:0:0
"/var/log/pm-suspend.log" 2026-6-6-18:0:0
"/var/log/daemon.log" 2026-6-7-12:37:22
"/var/log/wtmp" 2026-6-7-12:37:22
"/var/log/mail.warn" 2026-6-6-18:0:0
"/var/log/btmp" 2026-6-7-12:37:22
"/var/log/saned.log" 2026-6-6-18:0:0
"/var/log/speech-dispatcher/debug-epos-generic" 2026-6-6-18:0:0
"/var/log/speech-dispatcher/debug-festival" 2026-6-6-18:0:0
"/var/log/mail.err" 2026-6-6-18:0:0
"/var/log/lpr.log" 2026-6-6-18:0:0
"/var/log/afick/afick.log" 2026-6-12-8:24:8
"/var/log/user.log" 2026-6-7-12:37:22 
"/var/log/mail.info" 2026-6-6-18:0:0
"/var/log/fly-dm.log" 2026-6-12-8:24:8
"/var/log/cron.log" 2026-6-7-12:37:22
"/var/log/astra-update-service/update.log" 2026-6-6-18:0:0
"/var/log/messages" 2026-6-7-12:37:22
Mischutka ★★★★★
() автор топика
Последнее исправление: Mischutka (всего исправлений: 1)
Ответ на: комментарий от Aceler

Действовал по этой инструкции:

Логи утилиты logrotate обычно не сохраняются в отдельном файле по умолчанию. По умолчанию утилита не ведёт детальной записи своих действий в отдельный лог-файл. Однако есть несколько способов отследить её работу и возможные ошибки:

Файл состояния. В большинстве дистрибутивов путь к файлу состояния — /var/lib/logrotate/status. В нём фиксируется информация о последней ротации файлов, включая данные о том, какие логи были обработаны и с каким результатом. Чтобы посмотреть содержимое, можно выполнить команду cat /var/lib/logrotate/status.

Результат команды

cat /var/lib/logrotate/status

я и выложил.

Mischutka ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.