Can't run a task schedule in Laravel using cron job - laravel

we prepared functionality to run automatically, while it is working in the local server using the terminal but not in the server.
what is wrong with this cron command?
/usr/local/bin/php /home/path_of_server/artisan schedule:run >> null 2>&1

dev is missing in your command.
It should be like this:
/usr/local/bin/php /home/path_of_server/artisan schedule:run >> /dev/null 2>&1

Related

How can I run artisan Command to work In background laravel

I want to run the php artisan schedule:work command but the issue is that when i close putty it terminate the operation while i need it to remain processing on server
my server is running Ubuntu 20.4.1 LTS
Actually, the command schedule:work is for local development environment.
While you want to run your scheduler on server you should add a cron job like the following:
First, Go to your terminal, ssh into your server, cd into your project and run this command:
crontab -e
This will open the server Crontab file, paste the code below into the file, save and then exit.
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Here we added one Cron job which executes every minute to start the Laravel scheduler.
Don't forget to replace /path-to-your-project with your project path.
Use "nohup php artisan schedule:work"
Go to your project path e.g. cd /var/www/mywebsite
Command this
crontab -e
choose editor nano number 1 if it shows a list of editors.
below of file add this.
* * * * * php /var/www/mywebsite/artisan schedule:run >> /dev/null 2>&1
save it CTR+S

Task scheduler in laravel homestead

I'm trying to get scheduled tasks to work in homestead.
First I created a command in called "randomUserCreatesubmission".
protected $signature = 'command:randomusercreatesubmission';
This command works just fine.
I then added it to a schedule in Kernel.php
protected function schedule(Schedule $schedule)
{
$schedule->command('disposable:update')->weekly();
$schedule->command('command:randomusercreatesubmission')->everyMinute();
}
Then, after SSHing into homestead, I run the command
php artisan schedule:run
This returns the following:
Running scheduled command: '/usr/bin/php7.4' 'artisan' command:randomusercreatesubmission > '/dev/null' 2>&1
and it will run the "randomUserCreatesubmission" command once, immediately. However, I want it to run every minute, and it does not do that.
Why is this happening?
You need to setup a cron job. You can run in your terminal
crontab -e
then add to the end of your crontab
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
and this command will run every minute.
Don't forget to start scheduler by adding below statement into crontab -e
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Familiarize yourself with the official Laravel Scheduler documentation.

How to run Laravel schedule command as Cron Job online

I’m setting up a Cron Job for my laravel Schedule in CpaneL but it's not working. Please, i need help on how to do schedule:run in cPanel Cron Job.
This is what i have tried in cPanel Cron Job
/usr/local/bin/php7 /home/cattonli/public_html/artisan schedule:run >> /dev/null 2>&1
php artisan schedule:run works fine offline, but i can't get it to work offline.
I Hope "cattonli" is the username.
Try Below if it works for you.
If you have created "laravelapp" folder inside project folder try
/usr/local/bin/php7/bin/php-cli/home/cattonli/public_html/{project_folder_name_if_any_or_skip}/laravelapp/artisan schedule:run >> /dev/null 2>&1

Unable to run PHP Artisan command using Cron on Bitnami LAMP stack

I've created a custom Laravel PHP Artisan command which I was intending to use together with a cron job to carry out automated tasks on my server.
However, I'm having problems running the script and have tried a whole bunch of variations without much luck. Have looked high and low on the inter webs can't find anything to remedy my problems...
Here are a few of them:
* * * * * sudo su daemon -s /bin/sh -c "/opt/bitnami/php/bin/php /opt/bitnami/apps/demo/htdocs/ && php artisan schedule:run >> /tmp/output.txt 2>&1"
* * * * * cd /opt/bitnami/apps/demo/htdocs/ && php artisan schedule:run >> /tmp/output.txt 2>&1
* * * * * /opt/bitnami/php/bin/php /opt/bitnami/apps/demo/htdocs/ && php artisan schedule:run >> /tmp/output.txt 2>&1
The error I keep getting is: "/bin/sh: 1: php: not found"
I've also tried to execute the command as Bitnami, but no luck there either.
Thanks Jota, I ran the following and it seemed to have done the job:
* * * * * cd /opt/bitnami/apps/demo/htdocs/ && /opt/bitnami/php/bin/php artisan schedule:run >> /tmp/cron_output_8.txt 2>&1
Got this message instead now:
No scheduled commands are ready to run.
Which is good, I think that's just laravel, and I haven't set all that stuff up to run at this point.
Cheers,
Mikael

Running Laravel Artisan Schedule with prefix

I am running an artisan command via the scheduler on elastic beanstalk.
Elastic beanstalk cronjobs need to be passed the environment variables required for the process as follows.
* * * * * ec2-user source /opt/elasticbeanstalk/support/envvars; php /var/app/current/artisan schedule:run >> /dev/null 2>&1
Where /opt/elasticbeanstalk/support/envvars is a list of exports.
This works fine for the process running the scheduler itself, but the scheduler executes commands on separate processes and therefore the environment variables are missing.
For example
[ec2-user#ip-x-x-x-x current]$ php artisan schedule:run
Running scheduled command: '/usr/bin/php-7.0' 'artisan' rewards:notify > '/dev/null' 2>&1
Which then doesn't have access to the environment variables because the shell doesn't have a concept of a profile it seems and therefore doesn't autosource .bashrc etc.
How can I get the environment variables from the aforementioned file to be read in before my commands?

Resources