Я создал файл .plist, который загружает файл .sh, который, в свою очередь, вызывает следующий crontab в стиле Linux:
# REDCap Cron Job (runs every minute)
* * * * * /usr/bin/php /Applications/MAMP/htdocs/redcap/cron.php > /dev/null
(5 звездочек)
Я добавил следующую строку в конце crontab-test.sh:date >> /tmp/REDCapTest1.out
Каждую минуту файл Err добавляет эту строку:
/ Users / dhinostroza / bin / crontab-test.sh: строка 2: Приложения: команда не найдена
И каждую минуту файл Out генерирует запрошенную дату и время, например:
Пт 25 октября 09:32:50 -05 2019
Последний / var / logОтчеты /system.log:
25 октября 23:30:15 ssd com.apple.xpc.launchd [1] (com.redcap.crontabtest [679]): не удалось найти и / или выполнить программууказано службой: 2: Нет такого файла или каталога: / usr / bin / php /Applications/MAMP/htdocs/redcap/cron.php
25 октября 23:30:15 ssd com.apple.xpc. launchd [1] (com.redcap.crontabtest [679]): Событие настройки службы для обработки сбоя и не запустится до его запуска.
25 октября 23:30:15 ssd com.apple.xpc.launchd[1] (com.redcap.crontabtest [679]): Служба вышла с ненормальным кодом: 78
Итак, я предполагаю, что старый формат crontab должен быть преобразован в plist XML для запуска, чтобы понять его. Если бы я мог переписать задание crontab в файл plist, мне бы не понадобился .sh, но я не знаю как.
Может кто-нибудь дать мне некоторое представление об этом?
Best,
Daniel
UPDATE: я заменил .sh в plist, чтобы вместо этого напрямую вызывать php. Вот весь список:
<?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.redcap.crontabtest</string>
<key>ProgramArguments</key>
<array>
<string>php</string>
<string>/usr/bin/php</string>
<string>/Applications/MAMP/htdocs/redcap/cron.php</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/REDCapTest1.err</string>
<key>StandardOutPath</key>
<string>/tmp/REDCapTest1.out</string>
</dict>
</plist>
тоже не работает. Возможно, мне все еще нужно включить часть '> dev / null' ... Файл plist основан на этой записи и проверен с использованием Launchcontrol.app .