Я работаю с Yii и должен реализовать script для cron. У меня есть файл script, который просто вызывает Yii и запускает файл php- script.
До этого момента все в порядке. Если я обновляю php- script, Cron просто продолжит выполнение старого.
Перезапуск службы cron, перезагрузка сервера и т.д. не помогли. Я также удалил cron и установил его снова, но ничего не изменилось. Он по-прежнему выполняет старую версию этого php- script.
Кто-нибудь знает, что неправильно или что я могу сделать, чтобы решить эту проблему? Я использую Ubuntu 12.04.
EDIT:
Выполняется cronjob
script:
#!/bin/bash
cd ../www/protected/ ./yiic Cron ProcessPayments
php- script
class CronCommand extends CConsoleCommand {
public function actionProcessPayments() {
...
}}
Это работает, но любое изменение, которое я делаю на этом script, игнорируется Cron. И теперь я нахожусь в этом вопросе: он выполняет оба. Моя старая версия и новая версия. Я никогда не был смущен чем-то.
У меня была аналогичная проблема. A script в файле /etc/cron.d все еще выполнялся по-старому после его модификации. Я решил проблему, отправив SIGHUP в cron:
sudo pkill -SIGHUP /usr/sbin/cron
Предполагая, что у вас есть sudo на машине, на которой он расположен...
Сначала проверьте, находится ли он в обычных каталогах cron/etc/cron. *
sudo find /etc/cron* -mount -iname yiic
Если ничего не отображается, тогда найдите всю файловую систему, потому что в противном случае вам придется вручную искать много других мест, и требуется больше времени, чем запуск find
sudo find / -mount -iname yiic
В обеих командах поиска, если имя файла или когда-либо было чем-то другим, кроме yiic do yiic *, чтобы он искал все, что начинается с yiic
После того, как вы нашли копии, если есть другие, удалите каждый из них, кроме самого нового, или даже тот, а затем переустановите script на машине из управления версиями.
Edit:
Вероятно, больше, чем вам действительно нужно, но команда find распадается следующим образом:
sudo
- повышенные привилегии, чтобы вы могли искать везде, а не там, где вы можете читать
find
- команда поиска тиков
/
- отправная точка для поиска, может быть где угодно
-mount
- это говорит нам не искать другие файловые системы
-iname
- нечувствительное к регистру имя для поиска
yiic
- поисковый запрос
Найдите все свои копии script с помощью команды find
и удалите эти копии, которые вам не нужны. Перезагрузите cron
после того, как вы выбрали копию script, которую хотите выполнить. Мое предположение, что копия script может находиться в каталоге (например, config.daily
или что-то подобное).
НТН