dois crons não estão funcionando simultaneamente? [duplicado]

0
MAILTO=""
*/10 * * * *  /bin/bash /var/www/sym_monitor/sym_start.sh > /var/www/migrate/root_start.txt 2>&1
*/10 * * * *  /bin/bash /var/www/sym_monitor/stop.sh > /var/www/migrate/root_stop.txt 2>&1

Ambos são trabalhos dentro do cron rodando em intervalos de 10 minutos @ 17: 30 segundos um começando e 1735 primeiro começando evitando a morte do primeiro trabalho por segundo antes de realmente começar.

Primeiro script consiste no seguinte código

#!/bin/bash
value=$(</var/www/sym_monitor/man.txt)


if [ "$value" == "true" ]; then

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

fi

Segundo script consiste no seguinte código.

#!/bin/bash
value=$(</var/www/sym_monitor/man.txt)

if [ "$value" == "true" ]; then

sleep 30;
cd /var/www/symmetric-ds-3.1.6/bin;
(sudo ./sym --port 8082 --server);

fi

O problema é quando eu executo os dois scripts, infelizmente, o sym_start.sh não está sendo executado. Mas quando eu remover o stop.sh e executar manualmente o script de parada, o único script no cron está sendo executado corretamente. Por que isso acontece? alguma ideia?

    
por user1597811 25.02.2013 / 14:15

1 resposta

1

Sua descrição do crontab mostra que ambos serão executados ao mesmo tempo. Seu script de início tem um sono de 30 segundos, imagino tentar ajudar na encomenda. Se você deseja executar os dois trabalhos sequencialmente, você deve reescrevê-lo como um único script que faz isso na ordem desejada. Talvez algo assim:

#!/bin/bash

value=$(</var/www/sym_monitor/man.txt)

if [ "$value" == "true" ]; then
    ps -ef|grep sym |grep -v grep |awk '{ print $2 }'|sudo  xargs kill -9;
fi
sleep 30;
if [ "$value" == "true" ]; then
    cd /var/www/symmetric-ds-3.1.6/bin;
    (sudo ./sym --port 8082 --server);
fi
    
por 25.02.2013 / 15:57