> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.keepsec.ca/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# VPSmini - Adding a common service on boot on Ubuntu/Debian


# Adding a common service on Ubuntu/Debian OS

In order to add a service on boot, we are using our own CLI tool called `servicectl`.

It is as easy to use as this:
```shell
sudo servicectl -e <service_name>
```

(Make sure the service is already running first with `service <service_name> start`)

So for mariadb, it would be:
```shell
sudo servicectl -e mariadb
```

To get more information on how to use servicectl, you can always display the full help:
```shell
sudo servicectl -h
Usage:

      --enable, -e [service]         Enable a service
      --disable, -d [service]        Disable a service
      --start, -s                    Start all enabled services
      --list, -l                     List all enabled services
      --help, -h                     Display this help message
```

||| servicectl is a Custom Wrapper that we have created to allow you to add on boot service to you containerized operating system. Servicectl is not the same as service or systemctl.

### Creating and Managing Custom Services

Creating custom services allows you to run your own scripts or applications as services.

|| Our VPSmini doesn't use Systemd, we are using System V init scripts.

#### Creating a Custom SysVinit Service
[source](https://dev.to/iaadidev/how-to-manage-services-in-linux-systemd-and-sysvinit-essentials-devops-prerequisite-8-1jop#creating-a-custom-sysvinit-service)

**Create the Init Script:**

```
sudo nano /etc/init.d/myservice
```

**Add Script Content:**

```
#!/bin/sh
   ### BEGIN INIT INFO
   # Provides:          myservice
   # Required-Start:    $network
   # Required-Stop:     $network
   # Default-Start:     2 3 4 5
   # Default-Stop:      0 1 6
   # Short-Description: My Custom Service
   ### END INIT INFO

   case "$1" in
       start)
           echo "Starting myservice"
           /usr/local/bin/myscript.sh &
           ;;
       stop)
           echo "Stopping myservice"
           pkill -f /usr/local/bin/myscript.sh
           ;;
       *)
           echo "Usage: /etc/init.d/myservice {start|stop}"
           exit 1
           ;;
   esac
   exit 0
```

**Make the Script Executable:**

```
sudo chmod +x /etc/init.d/myservice
```

**Enable the Service:**

```
sudo update-rc.d myservice defaults
```

**Start the Service:**

```
sudo service myservice start
```

#### Managing Custom Services with SysVinit

* **Check the status of the custom service:**

```
sudo service myservice status
```

* **Stop the custom service:**

```
sudo service myservice stop
```

* **Restart the custom service:**

```
sudo service myservice restart
```
