PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Thuban : Créer un initscript sous OpenBSD : vilain et rcctl

vendredi 31 mars 2017 à 15:13

Vous vous souvenez de "vilain", un outil qui surveille les logs de votre serveur afin de mettre sur liste noire d'éventuels pirates en temps réel ? Jusqu'à présent, pour le lancer au démarrage, je conseillais l'utilisation du fichier /etc/rc.local qui permet d'exécuter n'importe quelle commande au démarrage. De plus, la mise en arrière-plan de vilain était gérée par tmux.
Ça fonctionnait bien, mais je voulais quelque chose de plus simple pour faciliter l'installation. L'utilisation d'un "init" script s'imposait.
Après des petites recherches, j'ai eu l'excellente surprise de voir que c'est très facile à mettre en place sous OpenBSD. Ceux qui pensent encore qu'OpenBSD est compliqué sont bien loin de la réalité. Ha ha, je me marre quand je repense aux initscript sous debian, et maintenant le bazar que c'est avec systemd !

Comme d'habitude, tout est documenté dans les pages man. J'ai commencé par regarder où se trouvent les scripts déjà existants : dans /etc/rd.c. Pas peu fier, je saisis alors la commande suivante :

$ man rc.d
NAME
     rc.d – daemon control scripts

SYNOPSIS
     /etc/rc.d/daemon [-df] action

DESCRIPTION
     The /etc/rc.d directory contains shell scripts to start, stop, and
     reconfigure daemon programs (“services”).
...
...

SEE ALSO
     rc(8), rc.conf(8), rc.subr(8), rcctl(8)

Cela me conduit à lire en diagonale (ouais hein, je ne suis pas fou, j'ai pas tout lu ^^) man rc.subr. J'en ai alors plus qu'assez pour écrire l'initscript de vilain que je place dans le fichier /etc/rc.d/vilain :

#!/bin/sh
#
# $OpenBSD: vilain.rc,v 1.0 2017/03/28 17:58:46 Thuban$

daemon="/usr/local/bin/vilain"

. /etc/rc.d/rc.subr

pexp=".*vilain\\.py"
rc_reload=NO

rc_cmd $1

C'est suffisant. Voici comment ça fonctionne :

Et voilà ! :P

On peut qui plus est modifier les fonctions de lancement, restart, stop, tout est décrit dans les manpages de façon très claire.

Reste plus qu'à activer et lancer vilain comme d'hab :

rcctl enable vilain
rcctl start vilain

J'en ai profité pour ajouter un Makefile à vilain histoire de l'installer/désinstaller plus facilement.

OpenBSD est le meilleur de tous les Linux ! XD

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.