Скрипт не принимает команды systemctl

Скрипт не принимает команды systemctl

Я создал пользовательский сервис {start|stop|restart|reload|force-reload|status}для StoneDb (модифицированная версия MySQL), но при проверке статуса получаю следующую ошибку: введите описание изображения здесь

Это явно означает, что команда не принимается 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

Thesystemctlкоманды для запуска и остановкисервисный блокне передавайте аргументы командной строки (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вспомогательного/обертывающего скрипта вы можете рассмотреть возможность использования более родного сервисного модуля systemd, предоставляемого MySQL и StoneDB в качестве шаблона сервисного модуля:

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

Связанный контент