मेरे पास एक .sh स्क्रिप्ट है जो जापानी उपग्रह के सर्वर से एक तस्वीर डाउनलोड करता है और इसे पृष्ठभूमि चित्र के रूप में सेट करता है। मैंने इसे स्टार्टअप सूची में डाल दिया है, लेकिन मैं इसे कैसे चलाऊं, जैसे 5 मिनट, स्वचालित रूप से?
मेरे पास एक .sh स्क्रिप्ट है जो जापानी उपग्रह के सर्वर से एक तस्वीर डाउनलोड करता है और इसे पृष्ठभूमि चित्र के रूप में सेट करता है। मैंने इसे स्टार्टअप सूची में डाल दिया है, लेकिन मैं इसे कैसे चलाऊं, जैसे 5 मिनट, स्वचालित रूप से?
जवाबों:
यदि आप आसान तरीका चाहते हैं, और यह पता लगाने से बचें कि कौन सा पर्यावरण चर सेट करना है:
स्टार्टअप अनुप्रयोगों के लिए निम्नलिखित जोड़ें:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
डैश> स्टार्टअप एप्लिकेशन> जोड़ें। कमांड जोड़ें:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"यदि आप अपने स्वयं के वातावरण से स्क्रिप्ट चलाते हैं (जैसे टर्मिनल विंडो या स्टार्टअप एप्लिकेशन से), तो कई पर्यावरण चर सेट किए जाएंगे। cronहालाँकि आपकी स्क्रिप्ट पर्यावरण चर के सीमित सेट के साथ चलती है।
चूंकि आपकी स्क्रिप्ट में कोई शक नहीं gsettingsकमांड का उपयोग करता है :
gsettings get org.gnome.desktop.background picture-uri <wallpaper>
वॉलपेपर सेट करने के लिए, लगभग निश्चित रूप से कमांड टूट जाएगा जब से चलाया जाएगा cron।
"आलसी समाधान" का नकारात्मक रूप से विशुद्ध रूप से सैद्धांतिक है। एक कमांड जो लगातार सोता है, इसका मतलब है कि आपके सिस्टम में कुछ भी नहीं है।
इस पोस्ट को पढ़ना , और अतीत के अनुभवों से, मुझे पूरा यकीन है कि DBUS_SESSION_BUS_ADDRESSपर्यावरण चर को सेट करने की आवश्यकता है।
ऐसा करने के लिए, अपनी स्क्रिप्ट की शुरुआत में (शेबंग के नीचे) निम्न अनुभाग जोड़ें:
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
फिर आपको इसे सफलतापूर्वक चलाने में सक्षम होना चाहिए cron।
आप हालांकि बहुत अच्छी तरह से ऊधम को बचा सकते हैं, और आलसी विकल्प चुन सकते हैं।
cpu 0.0%हम किस कर के बारे में बात कर रहे हैं?
अपने में डालो crontab।
cronद्वारा अपनी तालिका खोलें :
crontab -e
अब जोड़ें:
*/5 * * * * /path/to/script.sh
स्क्रिप्ट को पहले से अमल में लाना न भूलें।
जैसा कि आपकी स्क्रिप्ट एक्स पर निर्भर करती है, शायद DISPLAYस्क्रिप्ट के वातावरण को जोड़ने के लिए एक अच्छा विचार होगा :
*/5 * * * * DISPLAY=:0 /path/to/script.sh
:0अपने वास्तविक के साथ बदलें DISPLAY( echo $DISPLAYइंटरेक्टिव सत्र से पाया जा सकता है )।
यदि आवश्यक हो, तो आप XAUTHORITYपर्यावरण चर भी जोड़ सकते हैं :
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh
फिर से आप मान पा सकते हैं echo $XAUTHORITY।