Iniciar o tomcat na inicialização com privilégios administrativos

23

Eu preciso de um processo executado antes de efetuar login no sistema. Como executá-lo como serviços? como faço serviços no Linux?

No Ubuntu e no Fedora? O serviço é personalizado tomcat

    
por Sajad Bahmani 12.09.2010 / 16:00

7 respostas

23

Para executar um serviço sem ou antes de efetuar login no sistema (por exemplo, "na inicialização"), você precisará criar um script de inicialização e adicioná-lo à seqüê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 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á reiniciá-lo manualmente.

Felicidades!

    
por 12.09.2010 / 20:38
19

Dependendo do sistema init, você cria um script de inicialização de maneira diferente. O Fedora lhe dá upstart e systemd para escolher e, claro, compatibilidade com o SysV.

Upstart

  • crie um arquivo de definição de serviço como /etc/init/custom-tomcat.conf
  • coloque dentro:

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

E o seu Tomcat deve começar no início do sistema.

Systemd

  • crie uma definição de serviço em /etc/systemd/system/custom-tomcat.service
  • coloque 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 inicialização normal.

Claro que existem poucas opções de configuração para ambos os sistemas init, você pode verificar isso em sua documentação.

    
por 15.09.2010 / 10:40
7

O Tomcat é um serviço bastante comum, eu recomendo ver o script de inicialização fornecido pela distribuição já. É provável que funcione com o seu binário personalizado, com pouco ou nenhum ajuste.

    
por 12.09.2010 / 21:35
6

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

@reboot /your/command/here
    
por 12.09.2010 / 17:55
6

Para simplesmente executar um script após o computador ser iniciado, mas antes que um usuário faça o login, você pode simplesmente editar o script /etc/rc.local que serve para resolver exatamente essa tarefa.

    
por 22.09.2010 / 12:31
3

Você pode criar um script mais sofisticado, o que permite que você execute 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 vai em /etc/init.d/myservice e você inicia o serviço executando:

/etc/init.d/myservice start

Leia a página man no start-stop-daemon para entender como funciona.

    
por 16.04.2014 / 22:45
1

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

update-rc.d your_service defaults

para remover

update-rc.d -f your_service remove

Tchau! \ o

é bom para implementar o status das funções e forçar o recarregamento para ser o compilador do LSB

    
por 08.11.2011 / 04:35

Tags