Logo Hardware.com.br
bur
bur Veterano Registrado
1.5K Mensagens 29 Curtidas

ShellScript - Script não faz como eu pedi

#1 Por bur 16/09/2014 - 20:47
Boa noite.

Fiz um script para iniciar minhas máquinas virtuais automaticamente. Ele é executado uma vez por minuto. Veja:

#!/bin/bash

# --- winxp - sistema themis
ps aux | grep svr04-themis | grep VBoxHeadless > /dev/null

if [ $? -eq 1 ]
then
`VBoxHeadless -startvm svr04-themis &` > /dev/null
echo "iniciando vm... - " `date` >> /var/log/vms.log
fi


E no chamo o script pelo /etc/crontab:

0-59/1 * * * * suporte /etc/init.d/vms_iniciar.sh


Quando eu não quero que a máquina inicie automaticamente, eu comento ou removo esta linha e reinicio o cron, mas a máquina continua iniciando sempre depois que a desligo >frown.png

Por que?

Abs.
Gokuro
Gokuro Veterano Registrado
704 Mensagens 76 Curtidas
#2 Por Gokuro
17/09/2014 - 02:18
Salve bur

Sugestão 1: Substitua a sequência arkOrchid">ps | grep | grep > NULL por um pgrep sem pipes/redirecionamento e teste o resultado diretamente:
...
if (( $(pgrep -u svr04-themis VBoxHeadLess) == 0 )); then
# teu código
fi
# teu código
...
Sugestão 2: O comando abaixo é suspeito, pois requisita execução em background num subprocesso:

arkRed">`VBoxHeadless -startvm svr04-themis &` > /dev/null

poderia ser:

1>/dev/null VBoxHeadless -startvm svr04-themis &

ou seja; começa redirecionando output para o NULL (somente no comando que segue) e requisita execução em background. O & estará no final da linha de comando como pede o interpretador e evitamos o subprocesso suspeito.

Sugestão 3: Se for possível, use logger.

[
]'s

PS> A sintaxe/semântica é do BASH, como declarado no shebang.
© 1999-2025 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal