脚本未接受 systemctl 命令

脚本未接受 systemctl 命令

我已经为 StoneDb(MySQL 修改版本)创建了一个自定义服务{start|stop|restart|reload|force-reload|status},但是在检查状态时出现此错误: 在此处输入图片描述

这显然意味着即使我使用相同的脚本手动管理服务,StoneDb 也不会接受该命令。

[Unit]
Description=StoneDB database server
After=network.target
#StartLimitIntervalSec=90

[Service]
Type=forking
ExecStart=/opt/stonedb57/install/mysql_server
TimeoutSec=300

[Install]
WantedBy=multi-user.target

我在这里遗漏了什么?

答案1

systemctl启动和停止命令服务单位不要传递你的(systemctl)命令行参数,ExecStart= 启动服务的命令将按照服务单元中的定义逐字执行。

如果该脚本需要一个参数,一个选项(例如stop或 )start,就像您的错误消息所暗示的那样,该参数必须包含在ExecStart=script some-argument定义中。

正如已经评论的那样:

[Service]
Type=forking
ExecStart=/opt/stonedb57/install/mysql_server start
ExecStop=/opt/stonedb57/install/mysql_server stop
ExecReload=/opt/stonedb57/install/mysql_server reload
TimeoutSec=300

...

尽管不是调用mysql_server帮助程序/包装程序脚本:您可以考虑使用 MySQL 和 StoneDB 提供的更原生的 systemd 服务单元作为服务单元模板:

https://github.com/stoneatom/stonedb/tree/stonedb-5.7-dev/scripts/systemd

相关内容