Назад | Перейти на главную страницу

Почему модуль пути Systemd не перезапускает службу

Я использую Ubuntu 18.04. Я создал модуль обслуживания и пути для рабочего процесса Sneakers.

кроссовки. услуга:

[Unit]
Description=sneakers
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/home/deploy/rails_app/current
ExecStart=/home/deploy/.rbenv/bin/rbenv exec bundle exec rails sneakers:run
User=deploy
Group=deploy
UMask=0002
Environment=MALLOC_ARENA_MAX=2
Environment=RAILS_ENV=production
RestartSec=1
Restart=on-failure
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=sneakers
[Install]
WantedBy=multi-user.target

И кроссовки. Дорожка

[Path]
PathModified=/home/deploy/rails_app/current/tmp/restart.txt
[Install]
WantedBy=multi-user.target

Затем я включил их и запустил модуль пути:

sudo systemctl enable sneakers.{path,service}
sudo systemctl start sneakers.path

Запускается нормально, служебный скрипт работает нормально. Но он не перезагружается при изменении файла restart.txt (пробовал потрогать и изменить).

Я попробовал пошаговое руководство https://www.redhat.com/sysadmin/introduction-path-units - и он отлично работает в моей системе. Разница в том, что в этом руководстве используется короткий (однократный) сценарий, который существует после выполнения. В то время как моя служба использует длительную задачу переднего плана в ExecStart.

Как я могу заставить мою службу работать и перезапускаться с касанием файла?

systemd.path единицы не повторнозапускать службы, но только Начало их. Вот метод, в котором вы определяете новую служебную единицу «наблюдателя» и единицу пути, которая будет запускаться и начать сначала ваш Сервисы): https://superuser.com/questions/1171751/restart-systemd-service-automatically-whe Never-a-directory-changes-any-file-ins

Ты пробовала PathChanged ?

PathChanged= может использоваться для просмотра файла или каталога и активации настроенного модуля при его изменении. Он не активируется при каждой записи в наблюдаемый файл, но активируется, если файл, который был открыт для записи, закрывается.

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

ваша ссылочная ссылка открыла ошибку для модуля пути не улавливает все события https://bugzilla.redhat.com/show_bug.cgi?id=1722627