it-swarm-pt.tech

Inicie o Tomcat na inicialização com privilégios administrativos

Preciso executar um processo antes de efetuar o login no sistema. Como executá-lo como serviços? como faço para fazer serviços no Linux?

No Ubuntu e Fedora? O serviço é personalizado Tomcat

23
Sajad Bahmani

Para executar um serviço sem ou antes efetuando login no sistema (ou seja, "na inicialização"), você precisará criar um script de inicialização e adicioná-lo à sequência de inicialização.
Há três partes em um script de serviço: iniciar, parar e reiniciar.
A estrutura básica de um script de serviço é:

#!/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  

Depois de ajustar o script ao seu gosto, basta colocá-lo em /etc/init.d/
E adicione-o ao processo de inicialização do serviço do sistema (no Fedora, eu não sou um usuário do Ubuntu,> D):

chkconfig -add <ServiceName>  

O serviço será adicionado ao processo de inicialização do sistema e você não precisará iniciá-lo manualmente novamente.

Felicidades!

23
wormintrude

Dependendo do sistema init, você cria o script init de maneira diferente. O Fedora oferece a você o sistema inicial e o sistema para escolher e, é claro, compatibilidade com o SysV.

Subir na vida

  • criar arquivo de definição de serviço como /etc/init/custom-Tomcat.conf
  • ponha dentro:

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

E seu Tomcat deve iniciar na inicialização do sistema.

Systemd

  • criar definição de serviço em /etc/systemd/system/custom-Tomcat.service
  • ponha dentro:

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

e ative seu serviço usando systemctl enable custom-Tomcat.service. Será iniciado a cada inicialização normal.

Obviamente, existem mais algumas opções de configuração para os dois sistemas init, você pode ver as na documentação deles.

19
zdzichu

O Tomcat é um serviço bastante comum, eu recomendo que você já veja o script init fornecido pela distribuição. Provavelmente, ele funciona com seu binário personalizado, com pouco ou nenhum ajuste.

7
xenoterracide

Para simplesmente executar um script depois que o computador foi iniciado, mas antes que um usuário efetue login, você pode simplesmente editar o script /etc/rc.local, destinado a resolver exatamente essa tarefa.

6
fschmitt

Se você possui um daemon cron, um dos ganchos de tempo cron predefinidos é @reboot, que é executado naturalmente quando o sistema é iniciado. Corre crontab -e para editar seu arquivo crontab e adicione uma linha:

@reboot /your/command/here
6
Michael Mrozek

Você pode criar um script mais sofisticado, que permita executar sob as permissões de um usuário específico, da seguinte maneira:

#!/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

O script entra em /etc/init.d/myservice e você inicia o serviço executando:

/etc/init.d/myservice start

Leia a página do manual no start-stop-daemon para entender como ele funciona.

3
Mr Ed

No Ubuntu ou Debian, como você pode usar, para adicionar

update-rc.d your_service defaults

remover

update-rc.d -f your_service remove

Tchau!\o

é bom implementar o status das funções e o force-reload ser LSB-compilant

1
MaikoID