任何想法如何解决在Mac OSX system.log文件中显示的错误? 甚至是什么错误的意思?
我有以下每分钟运行的cron作业:
* * * * * cd /Library/[...]/report/ && nice -n 15 /usr/local/php5/bin/php -f report_generator.php > /dev/null 2>&1
在互联网上search提到评论cron工作,但在我的事业,我不能这样做。 Google的大部分search结果还没有确切地提及错误的实际含义。
完整的错误是:
Jul 2 14:50:00 xserve2 com.apple.launchd[1] (0x10c3f0.cron[46328]): Could not setup Mach task special port 9: (os/kern) no access
Mac OSX 10.5
我知道这不会解决最初的问题,但希望能告诉我们,如果这个问题是在launchd或其他东西的错误。
你有没有尝试删除cron工作,而是重新build立一个适当的launchd工作呢? launchd是应该运行cron作业,但它听起来像你可能会遇到一个错误。
您可以使用GUI(如Lingon)创buildlaunchd作业,而不是自己创build.plist。
示例.plist:
<?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> <string>test.dood.123</string> <key>ProgramArguments</key> <array> <string>cd</string> <string>/Library/REMOVED/DIRS/report/</string> <string>&&</string> <string>nice</string> <string>-n</string> <string>15</string> <string>/usr/local/php5/bin/php</string> <string>-f</string> <string>report_generator.php</string> <string>></string> <string>/dev/null</string> <string>2>&1</string> </array> <key>StartInterval</key> <integer>60</integer> </dict> </plist>
从我的谷歌search它听起来像这是一个错误在launchd运行cron作业。 来源: 1
StartInterval只会在上次运行时间的几秒钟内运行。 StartCalendarInterval将允许您在设置的时间运行它,而不是上面示例中的<key>StartInterval</key>使用以下内容:
只在上午3:15运行
<key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>3</integer> <key>Minute</key> <integer>15</integer> </dict>
每5分钟运行一次 – 使用数组的StartCalendarInterval。 (我不知道有更好的方法来写出来,所以我很乐意有人详细说明这一点)
<key>StartCalendarInterval</key> <array> <dict> <key>Minute</key> <integer>0</integer> </dict> <dict> <key>Minute</key> <integer>5</integer> </dict> <dict> <key>Minute</key> <integer>10</integer> </dict> <dict> <key>Minute</key> <integer>15</integer> </dict> <dict> <key>Minute</key> <integer>20</integer> </dict> <dict> <key>Minute</key> <integer>25</integer> </dict> <dict> <key>Minute</key> <integer>30</integer> </dict> <dict> <key>Minute</key> <integer>35</integer> </dict> <dict> <key>Minute</key> <integer>40</integer> </dict> <dict> <key>Minute</key> <integer>45</integer> </dict> <dict> <key>Minute</key> <integer>50</integer> </dict> <dict> <key>Minute</key> <integer>55</integer> </dict> </array>
有关更多信息,请参阅从cron部分移植到launchd和手册页的文档
系统日志中的条目似乎是由启动的应用程序自身完成的,括号中的cron作业的(子)subprocess。 该条目并不受限于任何特定的cron作业,而是发生在任何cron作业运行的每一个场合:我有一天运行一次的作业和一个每5分钟运行一次的作业,包含日志条目( 无法设置Mach任务特殊端口9:(os / kern)无法访问 )。 这个问题必须是运行cron作业的过程的一部分(在cron作业的外部),可能在cron进程的一部分lib文件中find,比如'/ System / Library / Frameworks /例如,CoreFoundation.framework / Versions / A / CoreFoundation。 这个问题不太可能是launchd的一部分,因为只有在调用cron的时候才会出现。
尽pipe可能会让人费解,但在允许工作运行的情况下,停止日志条目的最好办法是裁掉中间人 – 并从launchd直接运行工作。 如何实现的例子很多(见上文)。
达里尔,
不知道该脚本是做什么的(或者是谁的crontab),我build议你首先尝试从命令行以该用户身份运行它。
不速之客,它似乎是一个权限的事情。 你能提供更多的信息吗?
更多的search揭示了这个问题的两个论坛主题:
http://discussions.apple.com/thread.jspa?threadID=1224189&start=0&tstart=0
http://discussions.apple.com/thread.jspa?messageID=5666826�
希望有所帮助!