O script não está aceitando comandos systemctl

O script não está aceitando comandos systemctl

Eu criei um serviço personalizado {start|stop|restart|reload|force-reload|status}para StoneDb (uma versão modificada do MySQL), mas ao verificar o status recebo este erro: insira a descrição da imagem aqui

O que significa claramente que o comando não é executado pelo StoneDb, mesmo que eu esteja usando o mesmo script para gerenciar o serviço manualmente.

[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

O que estou perdendo aqui?

Responder1

Osystemctlcomandos para iniciar e parar umunidade de serviçonão passe seus argumentos de linha de comando (systemctl), o ExecStart= comando para iniciar o serviço será executado literalmente conforme definido na unidade de serviço.

Se esses scripts esperam um argumento, uma opção como stopou start, como sugere sua mensagem de erro, esse argumento deve ser incluído na ExecStart=script some-argumentdefinição.

Como já comentado:

[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

...

Embora em vez de chamar o mysql_serverscript auxiliar/wrapper: você pode considerar usar a unidade de serviço systemd mais nativa fornecida pelo MySQL e StoneDB como modelo de unidade de serviço:

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

informação relacionada