设置为在Mac上启动时运行的Python脚本将不会保持运行状态

设置为在Mac上启动时运行的Python脚本将不会保持运行状态,python,scheduled-tasks,schedule,Python,Scheduled Tasks,Schedule,我有一个Python脚本,我想在启动时运行,并在Mac上持续运行。我相信脚本正在执行,但它不会继续运行。 安装程序是一个加载了launchctl的plist脚本,用于在启动时启动Python脚本,该脚本应始终保持运行状态。 (始终运行)Python脚本使用“调度”模块,该模块应在特定时间执行函数。 如何使此脚本在计算机处于打开状态时一直运行?我能看到它在什么地方运行吗 具体来说:如果我在终端中手动运行Python脚本,它将连续运行,并在指定的时间使用schedule模块执行函数。 如果在启动时加

我有一个Python脚本,我想在启动时运行,并在Mac上持续运行。我相信脚本正在执行,但它不会继续运行。
安装程序是一个加载了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