Eu criei um serviço personalizado para {start|stop|restart|reload|force-reload|status}
StoneDb (uma versão modificada do MySQL), mas ao verificar o status recebo este erro:
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?
Os
systemctl
comandos para iniciar e parar uma unidade de serviço não passam seus argumentos de linha de comando (systemctl), oExecStart=
comando para iniciar o serviço é executado literalmente conforme definido na unidade de serviço.Se esses scripts esperam um argumento, uma opção como
stop
oustart
, como sugere sua mensagem de erro, esse argumento deve ser incluído naExecStart=script some-argument
definição.Como já comentado:
Embora em vez de chamar o
mysql_server
script 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