두 개의 크론이 동시에 실행되지 않습니까?

두 개의 크론이 동시에 실행되지 않습니까?
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

두 가지 모두 @17:30에 10분 간격으로 실행되는 cron 내부 작업이며 두 번째 작업은 시작되고 1735년 첫 번째 작업은 실제로 시작되기 전에 첫 번째 작업이 두 번째로 종료되는 것을 방지합니다.

첫 번째 스크립트는 다음 코드로 구성됩니다.

#!/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를 제거하고 중지 스크립트를 수동으로 실행하면 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

관련 정보