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

systemctl показывает, что служебный файл не найден, хотя файл .service присутствует

У меня странная проблема. У меня есть служебный файл для запуска собственного приложения. Команда systemctl показывает ЗАГРУЗИТЬ как не найденную

resource-service-prod-prod.service не найден активный запущенный ресурс-service-prod-prod.service

однако файл отображается в

ls -lrt /etc/systemd/system
lrwxrwxrwx  1 root root   96 Mar  5  2017 resource-service-prod.service -> /opt/app/daps-prod/resource-service/bin/resource-service-prod-prod.service

статус службы отображается как запущенный, но загружен: не найден (Причина: нет такого файла или каталога)

sudo service resource-service-prod status
Redirecting to /bin/systemctl status resource-service-prod.service
● resource-service-prod-prod.service
   Loaded: not-found (Reason: No such file or directory)
   Active: active (running) since Thu 2018-12-20 06:40:37 CST; 3 weeks 0 days ago
 Main PID: 12888 (node)
   CGroup: /system.slice/resource-service-prod-prod.service
           ├─12888 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12923 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12924 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12930 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12936 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12942 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12943 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12949 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12960 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12961 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12972 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           ├─12978 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js
           └─12984 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js

Приложение останавливается при выдаче остановки службы, но при попытке перезапустить его не удается (поскольку файл не найден). Делая systemctl daemon-reload помогает запустить службу, и служебный файл отображается как загруженный. Есть идеи, почему такое поведение?

фактический служебный файл находится на отдельном монтировании и является символической ссылкой в /etc/systemd/system

Возможно, служебный файл был перемещен во время работы службы. Вам может потребоваться бежать systemctl daemon-reload. Конечно, проверьте файл /opt/app/daps-prod/resource-service/bin/resource-service-prod-prod.service на самом деле там.

[root@storage system]# systemctl status smb.service
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
...
[root@storage system]# systemctl daemon-reload
[root@storage system]# systemctl status smb.service
● smb.service
   Loaded: not-found (Reason: No such file or directory)
...
[root@storage system]# ln -s /opt/smb.service /usr/lib/systemd/system/smb.service
[root@storage system]# systemctl status smb.service
● smb.service
   Loaded: not-found (Reason: No such file or directory)
...
[root@storage system]# systemctl daemon-reload
[root@storage system]# systemctl status smb.service
● smb.service - Samba SMB Daemon
   Loaded: loaded (/opt/smb.service; enabled; vendor preset: disabled)

Я знаю, что ему несколько месяцев назад, но для записи также проверьте файл конфигурации службы. Вы можете получить это сообщение, потому что блок зависимости не найден. Systemd, похоже, не дает достаточно подробностей в сообщении об ошибке, в котором проводится различие между основным модулем, который вы запускаете, и зависимым модулем. Иногда эти проблемы удается обойти при загрузке, а затем, если вы сделаете это вручную, выйдет из строя, что довольно раздражает.