У меня очень простой тестовый скрипт, который я хочу, чтобы мой компьютер запускался каждые 60 секунд - time_test_script.py
. Сценарий просто сохраняет файл .txt
с текущим временем как имя и записывает текст в файл. Файл находится в директории /Users/me/Documents/Python
.Запуск сценариев Python с помощью launchctl (OSX)
import datetime
import os.path
path = '/Users/me/Desktop/test_dir'
name_of_file = '%s' %datetime.datetime.now()
completeName = os.path.join(path, name_of_file+".txt")
file1 = open(completeName, "w")
toFile = 'test'
file1.write(toFile)
file1.close()
print datetime.datetime.now()
У меня также есть .plist
файла - test.plist
, который находится в /Library/LaunchAgents
реже.
test.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.test</string>
<key>ProgramArguments</key>
<array>
<string>/Users/me/Documents/Python/time_test_script.py</string>
</array>
<key>StartInterval</key>
<integer>60</integer>
</dict>
</plist>
Если я запускаю сценарий вручную он работает нормально, то есть создает .txt
файл в указанном каталоге. Однако, когда я пытаюсь инициировать launchctl
с Терминала, ничего не происходит.
$ launchctl load /Library/LaunchAgents/test.plist
$ launchctl start com.test
Что я делаю неправильно?