El script no acepta comandos systemctl

El script no acepta comandos systemctl

He creado un servicio personalizado {start|stop|restart|reload|force-reload|status}para StoneDb (una versión modificada de MySQL), pero al verificar el estado aparece este error: ingrese la descripción de la imagen aquí

Lo que significa claramente que StoneDb no toma el comando, incluso si estoy usando el mismo script para administrar el servicio 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

¿Qué me falta aquí?

Respuesta1

Elsystemctlcomandos para iniciar y detener ununidad de servicioNo pase los argumentos de la línea de comando (systemctl), el ExecStart= comando para iniciar el servicio se ejecuta palabra por palabra como se define en la unidad de servicio.

Si ese script espera un argumento, una opción como stopo start, como sugiere su mensaje de error, ese argumento debe incluirse en la ExecStart=script some-argumentdefinición.

Como ya se comentó:

[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

...

Aunque en lugar de llamar al mysql_serverscript auxiliar/contenedor: podría considerar usar la unidad de servicio systemd más nativa proporcionada por MySQL y StoneDB como plantilla de unidad de servicio:

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

información relacionada