Shell Script - Ajuda [RESOLVIDO]

1. Shell Script - Ajuda [RESOLVIDO]

Marcelo Helmers
marcelo.helmers

(usa Fedora)

Enviado em 05/02/2015 - 11:18h

Bom dia!
Uso o fedora 20.
Estou tentando montar um script para iniciar depois em serviço automaticamente, tentei fazer me baseando nas informações postadas no forum, mas sem sucesso, por isso vim aqui pedir ajuda.
Segue meu script:
#!/bin/bash
#Iniciar ctreeserver
cd /home/mhelmers/totvs/ctreeserver/faircom/linux.x64.64bit/bin/ace/isam
ulimit -n 65535
./ctsrvr
&&
#Iniciar appsrvlinux
cd /home/mhelmers/totvs/p11desenv/bin/appserver
ulimit -s 1024
./appsrvlinux

Como podem ver estou tentando iniciar dois serviços, mas acontece que quando eu executo ele inicia o primeiro, e o segundo fica aguardando eu finalizar o primeiro, mas na verdade eu preciso que os dois iniciem e trabalhem juntos.

Alguém pode me ajudar? Obrigado!


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/02/2015 - 11:21h

Simples, coloque o "&" no final de cada serviço, ex:

#!/bin/bash
#Iniciar ctreeserver
cd /home/mhelmers/totvs/ctreeserver/faircom/linux.x64.64bit/bin/ace/isam
ulimit -n 65535
./ctsrvr &
&&
#Iniciar appsrvlinux
cd /home/mhelmers/totvs/p11desenv/bin/appserver
ulimit -s 1024
./appsrvlinux &



3. Re: Shell Script - Ajuda [RESOLVIDO]

Marcelo Helmers
marcelo.helmers

(usa Fedora)

Enviado em 05/02/2015 - 11:26h

ru4n escreveu:

Simples, coloque o "&" no final de cada serviço, ex:

#!/bin/bash
#Iniciar ctreeserver
cd /home/mhelmers/totvs/ctreeserver/faircom/linux.x64.64bit/bin/ace/isam
ulimit -n 65535
./ctsrvr &
&&
#Iniciar appsrvlinux
cd /home/mhelmers/totvs/p11desenv/bin/appserver
ulimit -s 1024
./appsrvlinux &



Obrigado Ru4n! Funcionou, eu até tirei aqueles && que tinha colocado entre um serviço e outro. Valeu!!!




4. Re: Shell Script - Ajuda [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/02/2015 - 11:28h

#!/bin/bash
#Iniciar ctreeserver
cd /home/mhelmers/totvs/ctreeserver/faircom/linux.x64.64bit/bin/ace/isam
ulimit -n 65535
./ctsrvr
&&
#Iniciar appsrvlinux
cd /home/mhelmers/totvs/p11desenv/bin/appserver
ulimit -s 1024
./appsrvlinux

Esse AND (&&) é desnecessário, pois se o serviço ./ctsrvr retornar erro, o comando seguinte, cd /home/mhelmers/totvs/p11desenv/bin/appserver não será executado e consequentemente o ./appsrvlinux vai dar erro de execução (arquivo ou diretório não encontrado).

Você poderia melhorar, usando o código de retorno;

#!/bin/bash
#Iniciar ctreeserver
cd /home/mhelmers/totvs/ctreeserver/faircom/linux.x64.64bit/bin/ace/isam
ulimit -n 65535
./ctsrvr & return=$?
if ((return == 0)); then
#Iniciar appsrvlinux
cd /home/mhelmers/totvs/p11desenv/bin/appserver
ulimit -s 1024
./appsrvlinux &
else
echo "Erro ao executar './ctsrvr' " >&2
exit 1;
fi







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts