Arron
Arron

Reputation: 11

Run a bash script in the background using Laravel

I’m trying to run a bash script in the background using Laravel. I’m currently using Symfony process to run it. However, there is a timeout and the user won’t be able to navigate the website until the script is done. The script doesn’t output anything. It simply runs other scripts and take the output and insert it into a database.

I have tried appending & at the end of the command as well as dev/null. No matter what I do the user can’t navigate away from the page until the script is done executing. If the user navigates away from the page, the script is stoped.

Regards, Arron

Upvotes: 1

Views: 488

Answers (2)

Mathieu Ferre
Mathieu Ferre

Reputation: 4412

You should use laravel queues, it is exactly what you want :

https://laravel.com/docs/5.8/queues

The easiest way is with a database, but if you are using it with redis, you can also use Laravel Horizon to monitor them : https://laravel.com/docs/5.8/horizon

Upvotes: 1

Jason Kruger
Jason Kruger

Reputation: 1

Configure supervisord to run your script in the background. Google how to install and setup supervisor.

Upvotes: 0

Related Questions