Я пытаюсь написать сценарий launchd
, который будет запускать скрипт Python каждый час.returnctl status возвращает 2
Я создал следующий файл в ~/Library/LaunchAgents/
com.b00tahead.engage-check.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>com.b00tahead.engage-check</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Frameworks/Python.framework/Versions/3.5/bin/python3</string>
<string>Projects/engage_scripts/engage_check.py</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
Я затем запустить:
launchctl load ~/Library/LaunchAgents/com.b00tahead.engage-check.plist
launchctl start com.b00tahead.engage-check
Когда я бегу launchctl list
это показывает процесс как:
PID Status Label
- 2 com.b00tahead.engage-check
Я не совсем уверен, что указывает этот код возврата. Я могу запустить скрипт просто через терминал как python3 Projects/engage_scripts/engage_check.py
Сценарий Python записывает некоторые данные в TXT-файл на моем рабочем столе.
Это то, что launchctl list com.b00tahead.engage-check
возвращается:
{
"LimitLoadToSessionType" = "Aqua";
"Label" = "com.b00tahead.engage-check";
"TimeOut" = 30;
"OnDemand" = true;
"LastExitStatus" = 512;
"Program" = "/Library/Frameworks/Python.framework/Versions/3.5/bin/python3";
"ProgramArguments" = (
"/Library/Frameworks/Python.framework/Versions/3.5/bin/python3";
"Projects/engage_scripts/engage_check.py";
);
};
Если сценарий успешно завершен, он обычно возвращает статус '0'. Вероятнее всего, вы получите более подробную информацию о том, что происходит, используя команду 'launchctl list com.b00tahead.engage-check' –
Обновлено с помощью результатов из списка запуска launch com.b00tahead.engage-check' – Scott