it-swarm-es.tech

Inicie Tomcat al inicio con privilegios administrativos

Necesito ejecutar un proceso antes de iniciar sesión en el sistema. ¿Cómo ejecutarlo como servicios? ¿Cómo hago servicios en Linux?

¿En Ubuntu y Fedora? El servicio es personalizado Tomcat

23
Sajad Bahmani

Para ejecutar un servicio sin o antes iniciar sesión en el sistema (es decir, "en el arranque"), deberá crear un script de inicio y agregarlo a la secuencia de arranque.
Hay tres partes en un script de servicio: iniciar, detener y reiniciar.
La estructura básica de un script de servicio es:

#!/bin/bash
#
RETVAL=0;

start() {
echo “Starting <Service>”
}

stop() {
echo “Stopping <Service>”
}

restart() {
stop
start
}

case “$1″ in
start)
  start
;;
stop)
  stop
;;
restart)
  restart
;;
*)

echo $”Usage: $0 {start|stop|restart}”
exit 1
esac

exit $RETVAL  

Una vez que haya ajustado el script a su gusto, simplemente colóquelo en /etc/init.d/
Y, agréguelo al proceso de inicio del servicio del sistema (en Fedora, no soy un usuario de Ubuntu,> D):

chkconfig -add <ServiceName>  

El servicio se agregará al proceso de inicio del sistema y no tendrá que volver a iniciarlo manualmente.

¡Salud!

23
wormintrude

Dependiendo del sistema de inicio, puede crear una secuencia de comandos de inicio diferente. Fedora le ofrece un sistema de arranque y sistemad para elegir, y, por supuesto, compatibilidad con SysV.

Advenedizo

  • crear archivo de definición de servicio como /etc/init/custom-Tomcat.conf
  • poner dentro:

    start on stopped rc RUNLEVEL=3
    respawn
    exec /path/to/your/Tomcat --and --parameters
    

Y su Tomcat debería comenzar al iniciar el sistema.

Systemd

  • crear definición de servicio en /etc/systemd/system/custom-Tomcat.service
  • poner dentro:

    [Service]
    ExecStart=/path/to/your/Tomcat --and --parameters
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

y habilite su servicio usando systemctl enable custom-Tomcat.service. Se iniciará cada arranque normal.

Por supuesto, hay pocas opciones de configuración más para ambos sistemas init, puede verificarlas en su documentación.

19
zdzichu

Tomcat es un servicio bastante común, recomendaría mirar el script de inicio proporcionado por la distribución ya. Lo más probable es que funcione con su binario personalizado, con pocos o ningún ajuste.

7
xenoterracide

Para simplemente ejecutar un script después de que la computadora se inició pero antes de que un usuario inicie sesión, simplemente puede editar el script /etc/rc.local, que está destinado a resolver exactamente esta tarea.

6
fschmitt

Si tiene un demonio cron, uno de los ganchos de tiempo cron predefinidos es @reboot, que se ejecuta naturalmente cuando se inicia el sistema. Correr crontab -e para editar su archivo crontab y agregar una línea:

@reboot /your/command/here
6
Michael Mrozek

Puede crear una secuencia de comandos más sofisticada, que le permite ejecutar bajo los permisos de un usuario específico, de la siguiente manera:

#!/bin/sh
NAME=myservice
DESC="My Service"
USERGROUP="myservice:myservice"

#Helper functions
start() {
        start-stop-daemon --start --quiet --background --make-pidfile \
                --pidfile /var/run/$NAME.pid --chuid $USERGROUP \
                --exec /usr/local/bin/myservice
}

stop() {
        start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
                --exec myservice --retry 30
}

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        stop
        echo "$NAME."
        ;;
  restart)
        echo -n "Restarting $DESC: "
        #set +e
        stop
        #set -e
        #sleep 1
        start

        echo "$NAME."
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart}" >&2
        exit 1
        ;;
esac

exit 0

El script va en /etc/init.d/myservice, y usted inicia el servicio ejecutando:

/etc/init.d/myservice start

Lea la página de manual en start-stop-daemon para comprender cómo funciona.

3
Mr Ed

En Ubuntu o Debian como puedes usar, para agregar

update-rc.d your_service defaults

para eliminar

update-rc.d -f your_service remove

¡Adiós!\o

es bueno implementar el estado de las funciones y forzar la recarga para que sea LSB-compilant

1
MaikoID