启动计划益智游戏

这里是一个益智游戏:我有一个.plist / Library / LaunchDaemons,它设置为每天凌晨3:01运行,但运行。 然而(这是令人费解的部分),当它启动launchctl一切工作正常:

sudo launchctl start com.my.daemon 

此外,如果卸载守护进程,将StartCalendarInterval更改为将来的几分钟,然后重新加载守护进程,一切也都正常工作 – 在将来几分钟的指定时间守护进程将执行剧本。

所以基本上唯一不行的方法就是我真的希望它能工作,也就是第二天凌晨3:01开始

作为参考,这里是脚本的样子。 它运行在Tiger 10.4.11上:

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.my.daemon</string> <key>ProgramArguments</key> <array> <string>/usr/bin/open</string> <string>/Users/joe/import/do_import.fp7</string> </array> <key>StandardErrorPath</key> <string>/Library/Logs/my_err.log</string> <key>StandardOutPath</key> <string>/Library/Logs/my_out.log</string> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>3</integer> <key>Minute</key> <integer>1</integer> </dict> <key>UserName</key> <string>joe</string> <key>WorkingDirectory</key> <string>/Users/joe/import/</string> </dict> </plist> 

你会想知道日志说什么。 因为我昨天搞了很多,在复制和粘贴的过程中可能会无意中加载了同名的其他守护进程,所以我并不积极,这确实是守护进程的日志。 不过,这是错误日志中的内容。 (但是,请记住,当守护进程通过“launchctl start”启动时,或者将来在几分钟内启动StartCalendarInterval时,日志将为空)。

 2012-01-21 03:00:53.199 open[816] CFLog (0): CFMessagePort: bootstrap_register(): failed 1100 (0x44c), port = 0x2203, name = 'Processes-0.151912449' See /usr/include/servers/bootstrap_defs.h for the error codes. 2012-01-21 03:00:53.208 open[816] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (Processes-0.151912449) CFMessagePortCreateLocal failed (name = Processes-0.151912449 error = 0) 2012-01-21 03:01:00.100 open[818] CFLog (0): CFMessagePort: bootstrap_register(): failed 1100 (0x44c), port = 0x2203, name = 'Processes-0.152043521' See /usr/include/servers/bootstrap_defs.h for the error codes. 2012-01-21 03:01:00.101 open[818] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (Processes-0.152043521) CFMessagePortCreateLocal failed (name = Processes-.152043521 error = 0) 

帮助非常感谢,不仅因为我需要这个工作,而且因为这个难题让我疯狂。