Используйте простой цикл until
для автоматической проверки состояния выхода сценария PHP.
#!/bin/sh
until script.php
do
:
done
Двоеточие - это просто нулевой оператор, поскольку на самом деле вы не хотите ничего делать впетля.until
пока выполняйте команду script.php
до тех пор, пока она не вернет ноль (иначе истина).Если сценарий возвратил 0, чтобы указать, что не выполнено вместо 1, вы можете использовать while
вместо until
.
Вывод сценария PHP будет выходить со стандартным выводом и стандартной ошибкой, так что вы можете обернутьвызов сценария оболочки с некоторым изменением направления ввода / вывода для сохранения вывода в файле.Например, если скрипт называется loop.sh
, вы просто запустите:
./loop.sh > output.txt
, хотя, конечно, вы можете управлять выходным файлом непосредственно в скрипте PHP;вам просто нужно помнить, чтобы открыть файл для добавления.
Возможно, вы захотите задать отдельный вопрос о том, как отладить утечку памяти PHP, хотя: -)