# Install & Setup Supervisor

In this short snippet, you will learn how to install and manage [Supervisor](http://supervisord.org/) in Ubuntu machine. The steps is very straight forward so let's get started.<br>

### Step 1: Install Supervisor in Linux

#### Ubuntu

To install supervisor in ubuntu you can use "apt-get" command line. Do note that you need to use "sudo" in order to run this command.

```
sudo apt-get install supervisor
```

#### CentOS

To install supervisor in centOS (used by most whm server) you can use "yum" command line. Do note that you need to use "sudo" in order to run this command.

```
sudo yum update -y
sudo yum install epel-release
sudo yum update
sudo yum -y install supervisor
```

Then start and enable the supervisord daemon to start on boot using the commands below:

```
sudo systemctl start supervisord
sudo systemctl enable supervisord
```

### Step 2: Supervisor Configuration

The supervisor configuration can be located in **"/etc/supervisor/conf.d"** or **"/etc/supervisord.d" (in centOS)** and from within this directory, you can create as many configurations as you like.

For this example, we'll set up Laravel Queue supervisor configuration. To create a new file from within the supervisor config directory called "**queue\_manager.conf**" or "**queue\_manager.ini**" and the content of the file should be as follows.

Create the config file using the command below:

**Ubuntu**&#x20;

```
nano /etc/supervisor/conf.d/queue_manager.conf
```

**CentOS**

```
nano /etc/supervisord.d/queue_manager.ini
```

Then paste the follow code in the file:

```
[program:laravel_queue]
process_name=%(program_name)s_%(process_num)02d
command=php /PATH_TO_YOUR_BACKEND/artisan queue:work --tries=1
startsecs = 0
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stderr_logfile=/PATH_TO_YOUR_BACKEND/storage/logs/laraqueue.err.log
stdout_logfile=/PATH_TO_YOUR_BACKEND/storage/logs/laraqueue.out.log
stderr_logfile_maxbytes=1MB
stdout_logfile_maxbytes=1MB
```

In the code above, you have to replace the following with the right values on your server:\
**PATH\_TO\_*****YOUR\_BACKEND** replace with the directory path of where you backend files is location, usually its something like **home/USERNAME/public\_*****html**

**user=forge**, change it to the user you are logged in in your terminal, usually is root user, so you can set: **user=root**

### Step 3: Start Supervisor

Once you have created the configuration, you can start the supervisor process. To start supervisor you can run the following commands.

```
sudo supervisorctl reread
sudo supervisorctl update
```

### **Step 4: Start the queue**

Run the command below to start just the laravel\_queue you just created above

<pre><code><strong>sudo supervisorctl start laravel_queue
</strong></code></pre>

<mark style="color:red;">**Note:**</mark> If nothing works after run the command above, you can rather run the command below, to make supervisor start all queue:

```
sudo supervisorctl start all
```

**Done!!**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edentech.gitbook.io/glover/supervisor-setup-vps/install-and-setup-supervisor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
