दो क्रोन एक साथ नहीं चल रहे हैं? [डुप्लिकेट]


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

ये दोनों क्रोन के अंदर 10 मिनट के अंतराल पर चल रहे हैं @ 17: 30 दूसरा एक शुरू करने और 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 निष्पादित नहीं हो रहा है। लेकिन जब मैं स्टॉप निकालता हूं। शश और मैन्युअल रूप से स्टॉप स्क्रिप्ट को चलाता है तो क्रोन में एकमात्र स्क्रिप्ट ठीक से निष्पादित हो रही है। इस प्रकार ऐसा क्यों होता है? कोई उपाय?


मुझे यकीन नहीं है कि आप पहले पैराग्राफ में क्या मतलब है, लेकिन यह मुझे लगता है कि आप सोच रहे हैं कि 2 नौकरियों को अलग-अलग समय पर निष्पादित किया जाता है। ऐसा नहीं है। उन्हें एक ही समय में निष्पादित किया जाता है।
m4573r

यह अभी भी वही मुद्दा है जो कमांड में शेल स्क्रिप्ट के अंदर निष्पादित नहीं होता है? । एक नया प्रश्न पोस्ट करने के बजाय, आप इसे आगे की जानकारी शामिल करने के लिए संपादित कर सकते हैं।
डेनिस

जवाबों:


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

उत्तर slushpupie के लिए धन्यवाद, दुर्भाग्य से यह वास्तव में मेरी प्रारंभिक स्क्रिप्ट है। मेरे लिए यह काम नहीं कर रहा है। मेरा मतलब है कि इस मामले में दूसरी स्क्रिप्ट (sudo ./sym --port 8082 --server) भी काम नहीं कर रही है। इसलिए मैं इसे तोड़ता हूं और 2 स्क्रिप्ट के रूप में चलाने की कोशिश कर रहा हूं।
user1597811
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.