আমি একটি ছোট আপেলস্ক্রিপ্ট লিখেছি যা আমি প্রতি 2 ঘন্টা স্বয়ংক্রিয়ভাবে চালাতে চাই। আমি এইভাবে নিম্নলিখিত লঞ্চড ডেমন লিখেছি (সম্ভবত এটি একটি এজেন্ট):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>com.zerowidth.launched.aspect</string>
<key>Program</key>
<string>/usr/bin/osascript</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string
<string>/Users/***/my_script.scpt</string>
</array>
<key>StandardOutPath</key>
<string>/Users/***/file_log.log</string>
<key>RunAtLoad</key>
<true/>
<key>ThrottleInterval</key>
<integer>7200</integer>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
তারপর আমি টার্মিনাল খোলা আছে এবং সম্পন্ন
launchctl load ~/Library/LaunchAgents/com.zerowidth.launched.aspect.plist
এটা সূক্ষ্ম কাজ, কিন্তু শুধুমাত্র একবার এবং প্রতি দুই ঘন্টা না। কনসোল পরীক্ষা করে আমি নিম্নলিখিত বার্তা পেয়েছি (এবং আরো অনেক কিছু):
com.apple.xpc.launchd [1] (com.zerowidth.launched.aspect): এই সেবা ক্রমাগত চলমান সংজ্ঞায়িত করা হয় এবং স্বতঃস্ফূর্তভাবে অক্ষম।
ডিসেম্বর 16 17:02:25 এয়ার-অফ-ম্যান -2 com.apple.xpc.launchd [1] (com.zerowidth.launched.aspect): পরিষেবা শুধুমাত্র 7 সেকেন্ডের জন্য দৌড়ে। 7193 সেকেন্ড দ্বারা শ্বাস ফেলা।
আপনি কি অনুগ্রহ করে আমাকে বুঝতে সাহায্য করতে পারেন? আমি কিভাবে প্রতি দুই ঘন্টা আপেল স্ক্রিপ্ট চালাতে পারেন?
ধন্যবাদ।
সম্পাদনা করুন। আমি রবার্টের পরামর্শ, পাইথন স্ক্রিপ্ট এবং অ্যাপ্লিপলিপ্ট অনুসরণ করি।
এখানে পাইথন স্ক্রিপ্ট। এটি কনসোলকে LocateMe কমান্ডটি চালানোর জন্য অনুরোধ করে এবং এর থেকে এটি আমার অবস্থানের অক্ষাংশ এবং দ্রাঘিমাংশ প্রাপ্ত করে। তারপর এই স্থানটির সূর্যাস্ত এবং সূর্যোদয়ের সময় পেতে একটি API কে কল করে। অবশেষে একটি ছোট ফাংশন সিদ্ধান্ত নেয় কিনা তা দিন (সূর্যোদয় & lt; এখন
output = os.popen('/Users/***/Desktop/LocateMe').read()
###I extract my coordinates
coord = output[1:25]
lat = float(coord[1:12]) ###latitude
long = float(coord[13:25]) ### longitude
my_sunrise, my_sunset = get_ris_and_set(lat, long) ##this function calls an API that gives sunset and sunrise time in the position given by (lat,long)
my_sunset1 = my_sunset.time()
my_sunrise1 = my_sunrise.time()
result = str(is_day(now.time(), my_sunrise1, my_sunset1))
### compare the time now and returns true if it is day false otherwise
with open('/Users/***/Desktop/log_file.txt', 'a') as f:
print(result, file=f)
sys.exit()
এখানে অ্যাপ্লিপলিপ্ট: এটি উপরে পাইথন স্ক্রিপ্ট চালায় এবং বুলিয়ান মানটি পড়ায় (যদি এটি দিন বা না হয়)। তারপর Mojave নেভিগেশন অন্ধকার মোড যদি এটি পরীক্ষা করে এবং প্রয়োজন হলে এটি সুইচ।
tell application id "com.apple.systemevents"
tell application "Terminal"
do shell script "/usr/local/bin/python3 /Users/***/Desktop/python.py $@"
end tell
tell appearance preferences
set value to do shell script "tail -n 1 /Users/***/Desktop/log_file.txt"
if dark mode is true and value = "True" then
set dark mode to false
else if dark mode is false and value = "False" then
set dark mode to true
else
return
end if
end tell
end tell
launchd
সঠিকভাবে আপনার স্ক্রিপ্ট প্রতি দুই ঘন্টা চলমান হয়। যাইহোক, মনে হচ্ছে আপনার স্ক্রিপ্ট ক্রমাগত চলছে এবং একটি সেট বিরতিতে এটি ক্রমাগত চলমান স্ক্রিপ্ট চালানোর জন্য অক্ষম। আপনার স্ক্রিপ্ট কি অনুমিত হয়?
KeepAlive
সত্য সেট?