即使 .service 文件存在,systemctl 显示未找到服务文件

CVV*_*VVR 8 systemd systemctl

我遇到了一个奇怪的问题。我有一个服务文件来启动自定义应用程序。systemctl 命令显示 LOAD 为未找到

\n\n
\n

未找到资源服务-prod-prod.service 活动运行资源-服务-prod-prod.service

\n
\n\n

但是,文件显示在

\n\n
ls -lrt /etc/systemd/system\nlrwxrwxrwx  1 root root   96 Mar  5  2017 resource-service-prod.service -> /opt/app/daps-prod/resource-service/bin/resource-service-prod-prod.service\n
Run Code Online (Sandbox Code Playgroud)\n\n

服务状态显示为正在运行,但已加载:未找到(原因:没有此类文件或目录)

\n\n
sudo service resource-service-prod status\nRedirecting to /bin/systemctl status resource-service-prod.service\n\xe2\x97\x8f resource-service-prod-prod.service\n   Loaded: not-found (Reason: No such file or directory)\n   Active: active (running) since Thu 2018-12-20 06:40:37 CST; 3 weeks 0 days ago\n Main PID: 12888 (node)\n   CGroup: /system.slice/resource-service-prod-prod.service\n           \xe2\x94\x9c\xe2\x94\x8012888 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012923 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012924 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012930 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012936 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012942 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012943 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012949 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012960 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012961 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012972 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x9c\xe2\x94\x8012978 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n           \xe2\x94\x94\xe2\x94\x8012984 /usr/bin/node /opt/app/daps-prod/resource-service/source/app.js\n
Run Code Online (Sandbox Code Playgroud)\n\n

应用程序在发出服务停止时停止,但在尝试重新启动时,它不会(因为找不到文件)。执行systemctl daemon-reload帮助启动服务,服务文件显示为已加载。知道为什么会有这种行为吗?

\n\n

实际的服务文件位于单独的安装上,它是一个符号链接/etc/systemd/system

\n

小智 5

我知道这已经有几个月了,但为了记录,还要检查该服务的配置文件。您可能会收到此消息,因为未找到依赖单元。Systemd 似乎没有在错误消息中提供足够的详细信息,以区分您正在启动的主单元和从属单元。有时它会在启动时解决这些问题,然后如果您手动执行此操作则会失败,这非常令人抓狂。


小智 2

可能是服务运行时服务文件被移走了。您可能需要运行systemctl daemon-reload。当然,请验证该文件/opt/app/daps-prod/resource-service/bin/resource-service-prod-prod.service是否确实存在。

\n\n
[root@storage system]# systemctl status smb.service\n\xe2\x97\x8f smb.service - Samba SMB Daemon\n   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)\n...\n[root@storage system]# systemctl daemon-reload\n[root@storage system]# systemctl status smb.service\n\xe2\x97\x8f smb.service\n   Loaded: not-found (Reason: No such file or directory)\n...\n[root@storage system]# ln -s /opt/smb.service /usr/lib/systemd/system/smb.service\n[root@storage system]# systemctl status smb.service\n\xe2\x97\x8f smb.service\n   Loaded: not-found (Reason: No such file or directory)\n...\n[root@storage system]# systemctl daemon-reload\n[root@storage system]# systemctl status smb.service\n\xe2\x97\x8f smb.service - Samba SMB Daemon\n   Loaded: loaded (/opt/smb.service; enabled; vendor preset: disabled)\n
Run Code Online (Sandbox Code Playgroud)\n