У меня на Mac настроено несколько списков для запуска нескольких скриптов (php) с разными интервалами в течение дня. Они подключаются к моему веб-сайту (на внешнем сервере) и копируют конкретную информацию для хранения в локальной базе данных.
Все это работало хорошо до недавнего времени, когда я заметил, что моя база данных не обновляется.
Я поместил несколько строк кода отладки (запись в текстовый файл) внутри сценариев, которые должны выполняться, чтобы увидеть, где происходит ошибка, и я думаю, что я сузил ее до определенной строки.
// write to a text file1.txt
$base = "http://www.mywebsite.com/";
$html = file_get_html($base); // This is the line that causes the script to stop running
// write to a text file2.txt
Файл1 записан, но файл2 не записан.
Пытаясь определить, почему скрипт прекратил работу, я заглянул в system.log и заметил эту ошибку, в частности относящуюся к спискам, которые должны были быть запущены.
Nov 30 11:43:35 My-iMac com.apple.xpc.launchd[1] (com.whatever.whatever[19088]): Service exited with abnormal code: 255
Я выгрузил и затем загрузил весь plist из терминала:
sudo launchctl unload -w /Library/LaunchDaemons/com.whatever.whatever.plist
sudo launchctl load -w /Library/LaunchDaemons/com.whatever.whatever.plist
Я также подумал, что, возможно, это проблема с разрешениями, которая как-то изменилась, поэтому я:
sudo chown root:wheel /Library/LaunchDaemons/com.nhlrankking.playerstats3.plist
Однако они все еще не запускаются полностью и «застревают» в той же строке кода.
Если я запускаю сценарии вручную, они работают полностью без проблем и ошибок.
Я не уверен, поможет ли это, но Mac работает под управлением High Sierra, и я считаю, что проблема возникла примерно в то же время, когда я загрузил ОС ‘Mojave’ (но я еще не установил)
Я ценю любую помощь, которую вы можете оказать мне в решении этой проблемы. У меня нет большого опыта работы с launchd и ssh, поэтому я надеюсь, что это простая ошибка, но все поиски до сих пор были бесплодными.
—-Редактировать—-
Вот файл 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.whatever.whatever</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/php</string>
<string>/Users/My/Sites/Launchd/my_script.php</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
</dict>
</plist>
Задача ещё не решена.
Других решений пока нет …