无法识别现有的、正在运行的服务 - Ubuntu 18.04

无法识别现有的、正在运行的服务 - Ubuntu 18.04

我正在尝试在 Ubuntu Server 18.04 中启动时加载脚本。我的.service脚本安装在 中/etc/systemd/system,我可以运行:

service my-service start

和:

service my-service stop

但是当我尝试在启动时运行(根据网络我应该这样做)时:

 service my-service enable

系统响应:

 my-service: unrecognised service

在网上搜索只能告诉我如何在不适用于 18.04 的旧版本的 Ubuntu 中执行此操作,而且我无法确定正确的术语来找到答案。

剧本:

# filename: /etc/systemd/system/my-service.service
[Unit]
Description=My Service
After=network.target
After=mysqld.service

[Service]
User=the-user
WorkingDirectory=/home/the-user/path-to-script
ExecStart=/home/the-user/path-to-script/start.sh
SuccessExitStatus=0
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

我的问题是:我做错了什么?如何在启动时启动此服务?

答案1

使用真正的命令,即systemd

sudo systemctl enable my-service

作为参考,如果您希望单元文件为普通用户(例如您自己的用户)运行,则不必使用主系统目录。您可以在以下目录中创建它:

~/.config/systemd/user/

然后你可以这样做:

systemctl --user enable my-service

这样就无需sudo

正如您在评论中指出的那样,在运行每个用户时,systemdUser指令的实例应该不存在

答案2

笔记:
在其他情况下,你得到同样的错误:
service命令将目的第一的 !

service foo start

systemctl命令执行相反的操作:

systemctl start foo

另外,在服务中,您无法添加“ .service”,但如果您使用 systemctl 则可以。

相关内容