Não é possível iniciar um script

0
#!/bin/bash
value=$(<man.txt)
echo "$value"

if [ "$value" == "true" ]; then
    echo "startedif_manthan"
      ps -ef|grep sym |awk '{ print $2 }'|sudo  xargs kill -9;
      sleep 30;
    sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server;
fi

Oi, eu tenho esse script matando um processo e reinicie o script em algum momento. Ele está matando o script normalmente, mas o script de reinicialização (sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server) não está sendo executado corretamente. quando eu executo o script manualmente também está dando problemas. Eu não sei se é um script de shell ou não. Mas quando tentei ir manualmente para o local do script e executar este comando ./sym --port 8082 --server o script funcionando normalmente.

Alguma sugestão?

    
por user1597811 14.02.2013 / 06:48

1 resposta

0

Com base no que eu vejo, o comando de correspondência de lista de processos vai matar o grep que está fazendo a correspondência de padrões e impedir a execução posterior. Um truque rápido seria remover o próprio grep dos resultados da pesquisa:

ps -ef|grep sym | grep -v grep| awk '{ print $2 }'|sudo  xargs kill -9;

Um método melhor seria ler pgrep / pkill e usá-los. :)

    
por 14.02.2013 / 07:54