Я прочитал справочную страницу launchd.plist
Предполагается ли, что launchd собирает "пропущенные" события? и launchd, кажется, игнорирует StartCalendarInterval на Yosemite, но ни один из них не позволил мне диагностировать, почему моя задача launchd не выполняется.
У меня запланировано выполнение задачи на каждый день в 10:35, часто мой ноутбук спит, и поэтому эту задачу следует запускать, когда ноутбук «просыпается» в этих случаях (и нормально работать, когда ноутбук не спит).
Что я на самом деле вижу, так это то, что задача редко запускается сама по себе, и мне постоянно приходится запускать ее с помощью launchctl start com.arewesmallyet.update
, хотя она и выполняется нормально (один раз), когда я это делаю.
launchctl list | fgrep -i arewe
дает:
- 0 com.arewesmallyet.update
Вывод команды launchctl print gui/501/com.arewesmallyet.update
:
com.arewesmallyet.update = {
active count = 0
path = /Users/camdennarzt/Developer/Bash/dot-files/Library/LaunchAgents/com.arewesmallyet.update.plist
state = waiting
program = /Users/camdennarzt/Developer/Ruby/script.sh
arguments = {
/Users/camdennarzt/Developer/Ruby/script.sh
}
working directory = /Users/camdennarzt/Developer/Ruby/arewesmallyet
stdout path = /Users/camdennarzt/Developer/Ruby/arewesmallyet/log/update.log
stderr path = /Users/camdennarzt/Developer/Ruby/arewesmallyet/log/update_err.log
global environment = {
PATH => /usr/bin:/bin:/usr/sbin:/sbin
}
inherited environment = {
DISPLAY => /private/tmp/com.apple.launchd.8iIoQIK3yn/org.macosforge.xquartz:0
SSH_AUTH_SOCK => /private/tmp/com.apple.launchd.YUM1kEhk5R/Listeners
Apple_PubSub_Socket_Render => /private/tmp/com.apple.launchd.flahy7F91R/Render
}
environment = {
XPC_SERVICE_NAME => com.arewesmallyet.update
}
domain = com.apple.xpc.launchd.user.501.100006.Aqua
asid = 100006
minimum runtime = 10
exit timeout = 5
runs = 3
successive crashes = 0
excessive crashing = 0
last exit code = 0
event triggers = {
com.arewesmallyet.update.268435473 => {
state = 0
service = com.arewesmallyet.update
stream = com.apple.launchd.calendarinterval.501
monitor = com.apple.UserEventAgent-Aqua
descriptor = {
"Minute" => 35
"Hour" => 10
}
}
}
endpoints = {
}
dynamic endpoints = {
}
pid-local endpoints = {
}
instance-specific endpoints = {
}
event channels = {
"com.apple.launchd.calendarinterval" = {
port = 0x4991b
active = 0
managed = 1
reset = 0
hide = 0
}
}
sockets = {
}
spawn type = daemon
properties = {
partial import = 0
launchd bundle = 0
xpc bundle = 0
keepalive = 0
runatload = 0
dirty at shutdown = 0
low priority i/o = 0
low priority background i/o = 0
legacy timer behavior = 0
exception handler = 0
multiple instances = 0
supports transactions = 0
supports pressured exit = 0
enter kdp before kill = 0
wait for debugger = 0
app = 0
system app = 0
creates session = 0
inetd-compatible = 0
inetd listener = 0
abandon process group = 0
one-shot = 0
requires reap = 0
event monitor = 0
penalty box = 0
pended non-demand spawn = 0
role account = 0
launch only once = 0
system support = 0
app-like = 0
inferred program = 1
joins gui session = 0
joins host session = 0
parameterized sandbox = 0
resolve program = 0
abandon coalition = 0
extension = 0
nano allocator = 0
no initgroups = 0
start on fs mount = 0
}
}