2017-02-27 106 views
1

我想在Laravel中設置調度程序。Laravel + Crontab不工作

這裏是我的crontab我調試並正常工作 - 我的cron作業ATLEAST

* * * * * /bin/echo "foobar" >> /my_path/example.txt 

我不知道這一個工程:

* * * * * php /var/www/myproject/artisan schedule:run 1>> /dev/null 2>&1 

這裏是我的日程安排功能內核:

protected function schedule(Schedule $schedule) 
    { 
     $schedule->command('inspire') 
       ->everyMinute(); 
    } 

當我在我的項目,並嘗試php artisan inspire它的實際工作,所以我希望它每分鐘都能開火,但它什麼都不會做。什麼都沒發生。

任何想法?

+2

是什麼激發了你怎麼辦?難道它不只是迴應一個鼓舞人心的報價?除非您將輸出寫入某處,否則無法在終端中看到此引用。 – Jerodev

+0

@Jerodev噢,我雖然它應該顯示引用就像當我進入php工匠啓發。有沒有辦法檢查crontab是否安裝正確? – prgrm

回答

3

這部分只是把輸出被遺忘,所以你永遠不會看到它:

>> /dev/null 2>&1 

爲什麼不嘗試:

* * * * * php /var/www/myproject/artisan schedule:run >> /my_path/example.txt 

,並檢查是否cron是在運行/ my_path/example.txt

默認的inspire命令本質上只是echo的一個引號,因此在cron中看到它的唯一方法是將其輸出到t上的文件他服務器。

爲此,您可以使用的東西與此類似:

$schedule->command('inspire')->everyMinute()->appendOutputTo($filePath); 

進一步瞭解詳細:https://laravel.com/docs/5.4/scheduling#task-output

+0

試過這個。 example.txt包含:運行預定命令:'/ usr/bin/php''artisan'inspire>'/ dev/null'2>&1 – prgrm

+0

該節目運行正常,接下來您可以嘗試將其輸出到特定文件: https://laravel.com/docs/5.4/scheduling#task-output using $ schedule-> command('inspire') - > everyMinute() - > appendOutputTo($ filePath);或類似的東西。 – Rhu

0

我也使用laravel 4.2,這是我的Cron命令,目前工作良好。

0 0 * * * /usr/local/bin/php /*****/******/public_html/artisan command:firemyevent 

希望它會幫助你。