два cron не работают одновременно?

два cron не работают одновременно?
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

Оба эти задания внутри cron выполняются с интервалом в 10 минут: второе задание запускается в 17:30, а первое — в 17:35, что позволяет избежать завершения первого задания за секунду до его фактического запуска.

Первый скрипт состоит из следующего кода

#!/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

Второй скрипт состоит из следующего кода.

#!/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

Проблема в том, что когда я запускаю оба скрипта, к сожалению, sym_start.sh не выполняется. Но когда я удаляю stop.sh и вручную запускаю скрипт stop, то единственный скрипт в cron выполняется правильно. Почему так происходит? Есть идеи?

решение1

Описание вашего crontab показывает, что оба будут запущены одновременно. Ваш стартовый скрипт имеет 30-секундный сон, я полагаю, чтобы попытаться помочь с упорядочиванием. Если вы хотите запустить два задания последовательно, вам следует переписать его как один скрипт, который делает это в нужном вам порядке. Может быть, что-то вроде этого:

#!/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

Связанный контент