Неизвестная команда systemd Timer

Вопрос или проблема

У меня большие проблемы с таймерами systemd.

$ sudo systemd-analyze Notify_Satdisk_Needs_H20.service
Неизвестная команда 'Notify_Satdisk_Needs_H20.service'.

Notify_Satdisk_Needs_H20.service
[Unit]
Description="Скрипт для показа сообщения от спутниковой антенны"

[Service]
ExecStart=usr/local/bin/SatDiskMessage.sh

Ответ или решение

Проблема, с которой вы сталкиваетесь, связана с неверным использованием команды systemd-analyze. Данная команда не может использоваться для анализа отдельных юнитов, таких как сервисы, напрямую. Вместо этого вам следует использовать другие команды для работы с юнитами systemd.

Вот шаги, которые помогут вам диагностировать и исправить вашу проблему с таймером systemd:

  1. Проверьте правильность указания пути к скрипту: Убедитесь, что путь к исполняемому файлу в секции [Service] указан правильно. В вашем случае у вас написано ExecStart=usr/local/bin/SatDiskMessage.sh, вместо ExecStart=/usr/local/bin/SatDiskMessage.sh. Необходимо добавить начальный слеш, чтобы указать абсолютный путь.

    Вот исправленный фрагмент вашего сервиса:

    [Service]
    ExecStart=/usr/local/bin/SatDiskMessage.sh
  2. Создайте таймер для вашего сервиса: Если у вас еще нет таймера, создайте файл таймера /etc/systemd/system/Notify_Satdisk_Needs_H20.timer со следующим содержимым. Примерный текст может выглядеть так:

    [Unit]
    Description=Запуск скрипта SatDiskMessage через определенные интервалы
    
    [Timer]
    OnCalendar=daily
    Persistent=true
    
    [Install]
    WantedBy=timers.target

    Вы можете настроить OnCalendar в соответствии с вашими требованиями. Например, можно использовать OnCalendar=hourly для запуска ежечасно.

  3. Перезагрузите конфигурацию systemd: После внесения изменений перезагрузите конфигурацию:

    sudo systemctl daemon-reload
  4. Активируйте и запустите ваш таймер: Активируйте таймер, чтобы он начинал запускаться автоматически:

    sudo systemctl enable Notify_Satdisk_Needs_H20.timer

    После этого запустите таймер:

    sudo systemctl start Notify_Satdisk_Needs_H20.timer
  5. Проверьте статус таймера и сервиса: Убедитесь, что таймер работает корректно:

    systemctl list-timers --all

    И проверьте статус вашего сервиса:

    systemctl status Notify_Satdisk_Needs_H20.service

Если после выполнения всех шагов у вас по-прежнему остаются проблемы, проверьте журналы для вашего сервиса:

journalctl -u Notify_Satdisk_Needs_H20.service

Это поможет вам выявить возможные ошибки, связанные с выполнением скрипта.

Следуя вышеуказанным шагам, вы сможете исправить вашу проблему с таймерами systemd.

Оцените материал
Добавить комментарий

Капча загружается...