¿Cómo hacer un servicio que se inicie al arrancar en CentOS?

¿Cómo hacer un servicio que se inicie al arrancar en CentOS?

Cuando inicio mi máquina CentOS, el httpdservicio se inicia automáticamente. ¿Cómo hago un servicio personalizado que haga lo mismo? Tengo un programa que uso para minar y no quiero tener que ejecutarlo ./minercada vez que inicio la máquina.

Respuesta1

Como está utilizando CentOS 7.x, cree una Unidad. vim /usr/lib/systemd/system/miner.servicecomo rooty poner el siguiente contenido:

[Unit]
Description=miner

[Service]
ExecStart=/path/to/miner

[Install]
WantedBy=multi-user.target

Puede agregar opciones ExecStop=y ExecReload=si se utilizan argumentos específicos para cerrar o recargar servicios.

Después de eso, sólo tienes que systemctl enable miner.servicehacer que se inicie en cada arranque.

Cosas relacionadas:

Respuesta2

Dependiendo del proveedor del programa minero, es posible que ya tengas el servicio asociado declarado.

En centOS puedes comprobar:

# chkconfig --list 

y si ve su programa, puede decirle al sistema que lo ejecute automáticamente en el momento del arranque.

# chkconfig postgresql on

Si no encuentra ningún resultado, puede crear su propio script ficticio utilizando una plantilla, por ejemplo:

¿Cómo creo un servicio para un script de shell para poder iniciarlo y detenerlo como un demonio?

luego colóquelo en /etc/init.d/ y chmod +x

Debería poder administrar su aplicación minera como un servicio con todas las ventajas que conlleva.

Respuesta3

Si solo necesita ejecutar el comando en el arranque, no es realmente necesario intentar crear un servicio real. Lo más sencillo es ingresar . /path/to/miner/etc/rc.d/rc.local. Este archivo es un script que se ejecuta en cada arranque (y asegúrese de que rc.local sea ejecutable), por lo que su comando se ejecutará cuando se inicie el servidor.

Sin embargo, si necesita que se maneje como un servicio, la mejor manera de hacerlo dependerá de si está usando CentOS 7 o 5/6.

editar: olvidé mencionar que esto se ejecutará como root, por lo que si necesita que se ejecute como usuario no root, utilícelo en su lugarsu - username -c /path/to/miner

información relacionada