Página 1 de 3 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. Bom dia pessoal,

    Estou precisando iniciar um programa no SUSE como daemon. Eu consegui fazer com que o programa suba na inicialização do SUSE colocando os comandos no /etc/init.d/boot.local, porém, preciso que seja como daemon, para que possa utilizar o start, stop, restart e etc. Da forma que coloquei, não consigo, ele apenas sobe e da o PID. Alguém poderia me ajudar a subir programas como daemon? Desde já agradeço.

    Atenciosamente,

  2. Citação Postado originalmente por tifoski Ver Post
    ...Estou precisando iniciar um programa no SUSE como daemon. Eu consegui fazer com que o programa suba na inicialização do SUSE colocando os comandos no /etc/init.d/boot.local, porém, preciso que seja como daemon, para que possa utilizar o start, stop, restart e etc. Da forma que coloquei, não consigo, ele apenas sobe e da o PID. Alguém poderia me ajudar a subir programas como daemon?
    Você pode seguir as sugestões do template[1] de script de inicialização, ou também seguir tutoriais[2][3] que atendem especificamente sua necessidade.

    Um dos tutoriais[2] demonstra como instanciar uma aplicação Java, como serviço, no OpenSUSE. Com pequenos ajustes, é possível alterar para qualquer outro executável, diferente da aplicação Java, proposta originalmente no tutorial. Em outro tutorial[3], o exemplo é semelhante, entretanto de propósito geral.

    Citação Postado originalmente por tifoski Ver Post
    Desde já agradeço.
    Mantenha-nos informado sobre seu progresso

    [1] /etc/init.d/skeleton
    [2] http://www.source-code.biz/snippets/java/7.htm
    [3] http://www.novell.com/coolsolutions/feature/15380.html



  3. Citação Postado originalmente por trober Ver Post
    Você pode seguir as sugestões do template[1] de script de inicialização, ou também seguir tutoriais[2][3] que atendem especificamente sua necessidade.

    Um dos tutoriais[2] demonstra como instanciar uma aplicação Java, como serviço, no OpenSUSE. Com pequenos ajustes, é possível alterar para qualquer outro executável, diferente da aplicação Java, proposta originalmente no tutorial. Em outro tutorial[3], o exemplo é semelhante, entretanto de propósito geral.



    Mantenha-nos informado sobre seu progresso

    [1] /etc/init.d/skeleton
    [2] http://www.source-code.biz/snippets/java/7.htm
    [3] http://www.novell.com/coolsolutions/feature/15380.html



    Bom dia,

    Cara, consegui fazer funcionar, ele sobe certinho, consigo dar start, ver o status, mas não estou conseguindo dar um stop no serviço. Já fiz diversas modificações para dar o stop mas ele não da este stop. Segue o meu script para ter uma noção dele como um todo:

    Código :
    [FONT=arial]### BEGIN INIT INFO[/FONT]
    [FONT=arial]# Provides:          TRANSX[/FONT]
    [FONT=arial]# Required-Start:    $syslog $remote_fs[/FONT]
    [FONT=arial]# Required-Stop:     $syslog [/FONT]
    [FONT=arial]# Default-Start:     3 5[/FONT]
    [FONT=arial]# Default-Stop:      [/FONT]
    [FONT=arial]# Description:       Servico TRANSX[/FONT]
    [FONT=arial]### END INIT INFO[/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]SERV=transx[/FONT]
    [FONT=arial]APPPATH="/transx/recargametro"[/FONT]
    [FONT=arial]JAVA_BIN="/root/jdk1.7.0_25/bin/java"[/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]PAYLOAD="transx-1.0.103.jar"[/FONT]
    [FONT=arial]PIDFILE="/var/run/$SERV.pid"[/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]start() {[/FONT]
    [FONT=arial]        echo -n "Starting $SERV: "[/FONT]
    [FONT=arial]        if [ -f $PIDFILE ]; then[/FONT]
    [FONT=arial]                PID=`cat $PIDFILE`[/FONT]
    [FONT=arial]                echo $SERV already running $PID.[/FONT]
    [FONT=arial]                exit 2;[/FONT]
    [FONT=arial]        else[/FONT]
    [FONT=arial]                cd $APPPATH[/FONT]
    [FONT=arial]                nohup $JAVA_BIN -jar $PAYLOAD &> /dev/null &[/FONT]
    [FONT=arial]                RETVAL=$?[/FONT]
    [FONT=arial]                [ $RETVAL -eq 0 ] && touch $PIDFILE && echo `ps aux | grep $PAYLOAD | grep -v grep | awk {'print $2'}` > $PIDFILE[/FONT]
    [FONT=arial]                                echo OK[/FONT]
    [FONT=arial]                return $RETVAL[/FONT]
    [FONT=arial]        fi[/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]}[/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]stop() {[/FONT]
    [FONT=arial]        echo -n "Stopping $SERV: "[/FONT]
    [FONT=arial]                if [ -f $PIDFILE ]; then[/FONT]
    [FONT=arial]                        PID=`cat $PIDFILE`[/FONT]
    [FONT=arial]                kill $PID && rm -f $PIDFILE[/FONT]
    [FONT=arial]                        echo OK[/FONT]
    [FONT=arial]                return 0[/FONT]
    [FONT=arial]                else[/FONT]
    [FONT=arial]                        echo "not running or pid file is gone."[/FONT]
    [FONT=arial]                fi[/FONT]
    [FONT=arial]}[/FONT]
    [FONT=arial]
    [/FONT]
    [FONT=arial]status() {
                    if [ -f $PIDFILE ]; then
                           echo "running"
                            return 0
                    else
                            echo "not running"
                            return 1
                    fi
     
     
    }
     
     
     
     
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        status)
            status
            ;;
            restart)
                stop
                    start
                ;;
        *)
            echo "Usage:  {start|stop|restart}"
            exit 1
            ;;
    esac
    exit $?
    [/FONT]
    Última edição por trober; 28-01-2016 às 09:32. Razão: ajustes na formatação (uso de tag CODE)

  4. Citação Postado originalmente por tifoski Ver Post
    Bom dia,

    Cara, consegui fazer funcionar, ele sobe certinho, consigo dar start, ver o status, mas não estou conseguindo dar um stop no serviço. Já fiz diversas modificações para dar o stop mas ele não da este stop. Segue o meu script para ter uma noção dele como um todo:

    Código :
    ### BEGIN INIT INFO
    # Provides:          TRANSX
    # Required-Start:    $syslog $remote_fs
    # Required-Stop:     $syslog 
    # Default-Start:     3 5
    # Default-Stop:      
    # Description:       Servico TRANSX
    ### END INIT INFO
     
    SERV=transx
    APPPATH="/transx/recargametro"
    JAVA_BIN="/root/jdk1.7.0_25/bin/java"
     
    PAYLOAD="transx-1.0.103.jar"
    PIDFILE="/var/run/$SERV.pid"
     
    start() {
         echo -n "Starting $SERV: "
         if [ -f $PIDFILE ]; then
             PID=`cat $PIDFILE`
             echo $SERV already running $PID.
             exit 2;
         else
             cd $APPPATH
             nohup $JAVA_BIN -jar $PAYLOAD &> /dev/null &
             RETVAL=$?
             [ $RETVAL -eq 0 ] && touch $PIDFILE && echo `ps aux | grep $PAYLOAD | grep -v grep | awk {'print $2'}` > $PIDFILE
             echo OK
             return $RETVAL
         fi
    }
     
     
    stop() {
        echo -n "Stopping $SERV: "
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            kill $PID && rm -f $PIDFILE
            echo OK
            return 0
        else
            echo "not running or pid file is gone."
        fi
    }
     
     
    status() {
        if [ -f $PIDFILE ]; then
            echo "running"
            return 0
        else
            echo "not running"
            return 1
        fi
    }
     
    case "$1" in
             start)
                     start
        ;;
        stop)
            stop
        ;;
        status)
            status
        ;;
        restart)
            stop
            start
        ;;
        *)
            echo "Usage:  {start|stop|restart}"
            exit 1
        ;;
    esac
     
    exit $?
    Ao publicar códigos e porções de script, recomendo usar a TAG CODE, para formatar a aparência, promovendo assim maior legibilidade

    Em relação a impossibilidade de parar o serviço, faço as seguintes perguntas:

    1) O arquivo /var/run/transx.pid está sendo criado?

    2) Se a resposta for sim, para a pergunta anterior, o PID é condizente com o PID do processo de "recargametro"?

    3) Não é redundante o uso de 'nohup' num script de serviço?



  5. Citação Postado originalmente por trober Ver Post
    Ao publicar códigos e porções de script, recomendo usar a TAG CODE, para formatar a aparência, promovendo assim maior legibilidade

    Em relação a impossibilidade de parar o serviço, faço as seguintes perguntas:

    1) O arquivo /var/run/transx.pid está sendo criado?

    2) Se a resposta for sim, para a pergunta anterior, o PID é condizente com o PID do processo de "recargametro"?

    3) Não é redundante o uso de 'nohup' num script de serviço?

    Bom dia, desculpe, utilizarei da próxima.

    Resposta para as questões 1 e 2: sim.

    Referente a questão 3: Ainda sou iniciante no linux, então tenho muitas dificuldades. O nohup já era usado para iniciar a aplicação manualmente nos servidores da empresa, por isso continuei utilizando ele. Há alguma forma de colocar este serviço no ar, sem o nohup neste script?

    Atenciosamente,

    Lucas Farias






Tópicos Similares

  1. Respostas: 9
    Último Post: 23-01-2011, 13:11
  2. script como servico
    Por softov no fórum Linguagens de Programação
    Respostas: 4
    Último Post: 30-04-2009, 06:44
  3. Respostas: 17
    Último Post: 18-04-2007, 10:06
  4. Usando firewall como servico com adsl-init
    Por Daniels no fórum Servidores de Rede
    Respostas: 0
    Último Post: 26-07-2005, 15:57
  5. como abrir um programa como root?
    Por ApitaAqui no fórum Servidores de Rede
    Respostas: 16
    Último Post: 08-03-2005, 20:26

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L