设置为在Mac上启动时运行的Python脚本将不会保持运行状态
我有一个Python脚本,我想在启动时运行,并在Mac上持续运行。我相信脚本正在执行,但它不会继续运行。设置为在Mac上启动时运行的Python脚本将不会保持运行状态,python,scheduled-tasks,schedule,Python,Scheduled Tasks,Schedule,我有一个Python脚本,我想在启动时运行,并在Mac上持续运行。我相信脚本正在执行,但它不会继续运行。 安装程序是一个加载了launchctl的plist脚本,用于在启动时启动Python脚本,该脚本应始终保持运行状态。 (始终运行)Python脚本使用“调度”模块,该模块应在特定时间执行函数。 如何使此脚本在计算机处于打开状态时一直运行?我能看到它在什么地方运行吗 具体来说:如果我在终端中手动运行Python脚本,它将连续运行,并在指定的时间使用schedule模块执行函数。 如果在启动时加
安装程序是一个加载了launchctl的plist脚本,用于在启动时启动Python脚本,该脚本应始终保持运行状态。
(始终运行)Python脚本使用“调度”模块,该模块应在特定时间执行函数。
如何使此脚本在计算机处于打开状态时一直运行?我能看到它在什么地方运行吗 具体来说:如果我在终端中手动运行Python脚本,它将连续运行,并在指定的时间使用schedule模块执行函数。
如果在启动时加载plist脚本,Python脚本不会在指定的时间执行函数,但是,如果我将Python脚本更改为执行函数一次,plist脚本将在启动时执行该函数。
[在下面的所有代码中,如果正在复制,请将“/path/to”更改为您的路径和Mac的用户名等。]
plist脚本
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
<key>Label</key>
<string>Run.The.FB.photoblast</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/python</string>
<string>/path/to/python/script.py</string>
</array>
<key>StandardErrorPath</key>
<string>/var/log/python_script.error</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
我刚刚删除了Python脚本中的调度,并将函数设置为在调用脚本时启动。然后创建了一个cron作业,每天下午2点运行
EDITOR=/usr/bin/nano crontab -e
14***是每天下午2点
0 14 * * * /anaconda3/bin/python /Users/mycomputername/Documents/FBcal/s2cheduler.py >> ~/cron.log 2>&1
import os
import time
import glob
import random
import facebook
import schedule
#wait 13 seconds to give the computer time to wake up
time.sleep(13)
def job():
allphotofiles = glob.glob('/users/<user_name>/documents/fbcal/photos/*.jpg')
one_photo = allphotofiles[random.randint(0, len(allphotofiles)-1)]
#one_photo = glob.glob(one_random + '/*.jpg')[0]
d = {
'Calg Big': 'FACEBOOK_PAGE_TOKEN'}
for i in d:
graph = facebook.GraphAPI(access_token=d[i], version='3.1')
graph.put_photo(image=open(one_photo, "rb"))
print(i)
os.rename(one_photo, '/users/<user_name>/documents/fbcal/used/'+one_photo[43:])
# job()
schedule.every().day.at("13:00").do(job())
while True:
schedule.run_pending()
time.sleep(1)
EDITOR=/usr/bin/nano crontab -e
0 14 * * * /anaconda3/bin/python /Users/mycomputername/Documents/FBcal/s2cheduler.py >> ~/cron.log 2>&1