Setting up a Laravel cron job in cPanel

Viewed 22811

I have the following function:

protected function schedule(Schedule $schedule)
{
    $schedule->command('email:users')->everyMinute();
}

when I run the command

artisan schedule:run 

it sends an email but when I add the following command to the cpanel as a cron job it doesn't send any email. Cpanel suppose to email me a notification when the cron job is run but I haven't receive a single email.

php /home/rain/artisan schedule:run 1>> /dev/null 2>&1

Where am I doing wrong?

Also when I run the command artisan schedule:run it runs it only once. I am very curious why do I have to add ->everyMinute(); if it is not going to run every minute? If I want to send it weekly I can setup the cron job. Why do I have to write to add ->weekly(); in the function if cron job is sending it weekly?

4 Answers

It worked for me:

First try your command without waiting:

/usr/local/bin/php /home/hosting-username/laravel-folder/artisan schedule:run

Then, once you checked if it worked, add this:

/usr/local/bin/php /home/hosting-username/laravel-folder/artisan schedule:run >> /dev/null 2>&1

This worked for me

/usr/local/bin/php /home2/maildoll/demo.maildoll.com/artisan queue:work --stop-when-empty >> /dev/null

enter image description here

This Works for me

/usr/local/bin/php /home/hosting-username/laravel-folder/artisan schedule:run >> /dev/null

Just Make Sure you use exact version of php to execute schedule

e.g if your php v is 7.3 then the code will be

 /usr/local/bin/ea-php73 /home/hosting-username/laravel-folder/artisan schedule:run >> /dev/null
Related