我已经为 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
我在这里缺少什么?
systemctl
启动和停止服务单元的命令不会传递您的(systemctl)命令行参数,ExecStart=
启动服务的命令将按照服务单元中的定义逐字执行。如果该脚本需要一个参数,例如
stop
或 之类的选项start
,就像您的错误消息所建议的那样,则该参数必须包含在定义中ExecStart=script some-argument
。正如已经评论过的:
尽管不是调用
mysql_server
帮助器/包装器脚本:您可能会考虑使用 MySQL 和 StoneDB 提供的更原生的 systemd 服务单元作为服务单元模板:https://github.com/stoneatom/stonedb/tree/stonedb-5.7-dev/scripts/systemd