> ## 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 - Ajouter un service régulier sur Ubuntu/Debian


# Ajouter un service commun sur les systèmes Ubuntu/Debian

Afin d'ajouter un service au démarrage, nous utilisons notre propre outil en ligne de commande appelé `servicectl`.

Son utilisation est aussi simple que :

```
sudo servicectl -e <nom_du_service>
```

(Assurez-vous que le service est déjà démarré avant avec `service <service_name> start`)

Ainsi, pour mariadb, ce serait :

```
sudo servicectl -e mariadb
```

Pour obtenir plus d'informations sur l'utilisation de servicectl, vous pouvez toujours afficher l'aide complète :

```
sudo servicectl -h
Utilisation :

      --enable, -e [service]         Activer un service
      --disable, -d [service]        Désactiver un service
      --start, -s                    Démarrer tous les services activés
      --list, -l                     Lister tous les services activés
      --help, -h                     Afficher ce message d'aide
```

||| servicectl est un Wrapper personnalisé que nous avons créé pour vous permettre d'ajouter des services au démarrage sur votre système d'exploitation conteneurisé. Servicectl n'est pas le même que service ou systemctl.

### Créer et gérer des services personnalisés

La création de services personnalisés vous permet d'exécuter vos propres scripts ou applications en tant que services.

|| Notre VPSmini n'utilise pas Systemd, nous utilisons des scripts d'initialisation System V.

#### Créer un service SysVinit personnalisé

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

**Créer le script d'initialisation :**

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

**Ajouter le contenu du script :**

```
#!/bin/sh
   ### BEGIN INIT INFO
   # Provides:          monservice
   # Required-Start:    $network
   # Required-Stop:     $network
   # Default-Start:     2 3 4 5
   # Default-Stop:      0 1 6
   # Short-Description: Mon service personnalisé
   ### END INIT INFO

   case "$1" in
       start)
           echo "Démarrage de monservice"
           /usr/local/bin/monscript.sh &
           ;;
       stop)
           echo "Arrêt de monservice"
           pkill -f /usr/local/bin/monscript.sh
           ;;
       *)
           echo "Utilisation : /etc/init.d/monservice {start|stop}"
           exit 1
           ;;
   esac
   exit 0
```

**Rendre le script exécutable :**

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

**Activer le service :**

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

**Démarrer le service :**

```
sudo service monservice start
```

#### Gérer les services personnalisés avec SysVinit

* **Vérifier l'état du service personnalisé :**

```
sudo service monservice status
```

* **Arrêter le service personnalisé :**

```
sudo service monservice stop
```

* **Redémarrer le service personnalisé :**

```
sudo service monservice restart
```
