On Thu, 7 Feb 2008 11:31:14 -0200 "Leonardo Neves" <[EMAIL PROTECTED]> wrote:
> Pessoal, > > Meus scripts em ambiente solaris rodam da seguinte forma: > > [EMAIL PROTECTED] ~]# ./teste.sh & > [2] 14761 > [EMAIL PROTECTED] ~]# ps -ef | grep teste | grep -v grep > root 14761 8229 0 11:23:27 pts/3 0:00 /bin/bash ./teste.sh > > > Em ambientes Linux o comando em execução seria apenas ./teste.sh ao > invés de /bin/bash ./teste.sh > > Apesar de não alterar em nada a execução do script, não consigo fazer > a monitoração de forma adequada via Nagios/NRPE. Alguém sabe como > arrumar isso sem a necessidade de usar compiladores (shc, gcc). > > Atenciosamente, Leonardo, Isso ocorre porque o Linux te "engana" linkando o sh para bash (comprove com o seguinte comando $ ls -l /bin/sh). Bash eh apenas um tipo de shell, existindo muitos outros, com diferentes funcionalidades e habilidades, uns ate MUITO melhores do que o Bash, na minha opiniao. Verifique se os seus scripts utilizam alguma funcionalidade especifica do bash, para isso vc pode fazer o seguinte (no solaris): $ /bin/sh teste.sh $ echo $? Caso o resultado seja positivo, ou seja, o script roda sem maiores problemas, troque a primeira linha de cada script para "#!/bin/sh" ao inves de "#!/bin/bash". Caso contrario, vc pode ir colando os trechos de bash para nos te ajudarmos a migrar para sh. Outra alternativa, caso vc queria manter as funcionalidades do bash, eh utilizar o comando "env" ($ man env), no qual ele vai localizar o interpretador bash no $PATH, com o env a primeira linha ficaria assim: #!/usr/bin/env bash Por ter esta variedade de possibilidades eu sempre implemento os meus shell scripts seguindo o padrao Sh, pois ele sempre vai ser aceito em outros sistemas unix-like. um abraco, -- | -- | Otávio Fernandes < otaviof | gmail | com > | FreeBSD 7.0-PRERELEASE && GNU/Linux User: 283.396 | (( Especial Programação )) http://geekbr.podcastbrasil.com/ -- 0.15 | --