2017-03-19 105 views
-1

我写了一个名为Music_Scrape.py的python脚本,它位于以下目录/ Users/MY_USER_NAME/code/Python_Projects中。该脚本使用终端命令/Users/MY_USER_NAME/code/Python_Projects/Music_Scrape.py运行。我试图每天都有这个运行,但似乎无法获得cron或launchd的工作。我正在使用OSX El Capitan版本10.11.6。cron和launchd都不能成功运行python脚本?

在CronniX中创建以下内容不起作用(为了进行调试,我尝试每分钟运行一次)。

CronniX attempt

我也尝试使用launchd会与下面的plist文件。这放在〜/ Library/LaunchAgents目录中。我试图启动与下面的命令:

launchctl负载〜/库/ LaunchAgents/pullMusic.plist

launchctl开始pullMusic

又什么都没有发生。

<?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>Label</key> 
    <!-- The label should be the same as the filename without the extension --> 
    <string>pullMusic</string> 
    <!-- Specify how to run your program here --> 
    <key>Program</key> 
     <string>/Users/samuelcurtis/code/Python_Projects/Music_Scrape.py</string> 
    <!-- Run every minute --> 
    <key>StartInterval</key> 
    <integer>60</integer><!-- seconds --> 
</dict> 
</plist> 

我已阅读了许多与此问题有关的帖子,并尝试使用绝对文件路径和更改权限,这两者似乎都没有帮助。看起来,安排命令行命令以一定的时间间隔执行应该是一个更简单的任务,但显然不是!我们会推荐哪些步骤来调试该问题?

回答

0

为了获得最简单的cron GUI的Raspbian,这样做:

sudo apt-get install gnome-schedule 

将它安装到你的菜单,使得它很容易设置的东西cron的一面。

对于我的bash脚本,我把它们放在我的〜/ scripts目录中,它运行得很好。

如果你想从你的脚本中调用Python程序,你可能知道

chmod +x <filename> 

,才可以在命令行直接运行。

每当我遇到任何脚本问题时,我总是通过手动运行它,从我的/ home/pi目录开始。

然后,我建我的剧本,包括像这种定期行:

echo "Beginning phase 1" >/home/pi/scripts/test.out 
echo date >>/home/pi/scripts/test.out 
    and so on 

然后把它在脚本目录中,然后使用调度程序来启动它运行。

通过查看test.out文件,您可以看到您从任何命令的stdout追加的任何输出。

它令人安心,事情正如你所期望的那样工作。

+0

这似乎没有解决这个问题。问题不在于运行脚本。如问题所述,脚本可以在手动输入到终端的情况下正常运行。问题是,应该自动执行此命令的工具被输入到终端中,并不像预期的那样正常工作,我不知道为什么。编辑:我确实使用chmod命令将我的python程序变为可执行脚本。 – sjc