Cron Job использует старый несуществующий php файл

10

Я работаю с 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. И теперь я нахожусь в этом вопросе: он выполняет оба. Моя старая версия и новая версия. Я никогда не был смущен чем-то.

  • 0
    Можете ли вы опубликовать, как вы определяете команду для запуска?
  • 0
    Вы уже пытались запустить "$ crontab -l"?
Показать ещё 6 комментариев
Теги:
cron
yii

3 ответа

0

У меня была аналогичная проблема. A script в файле /etc/cron.d все еще выполнялся по-старому после его модификации. Я решил проблему, отправив SIGHUP в cron:

sudo pkill -SIGHUP /usr/sbin/cron
0

Предполагая, что у вас есть 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 - поисковый запрос

0

Найдите все свои копии script с помощью команды find и удалите эти копии, которые вам не нужны. Перезагрузите cron после того, как вы выбрали копию script, которую хотите выполнить. Мое предположение, что копия script может находиться в каталоге (например, config.daily или что-то подобное).

НТН

Ещё вопросы

Сообщество Overcoder
Наверх
Меню