Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Créer un initscript sous OpenBSD : vilain et rcctl

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

le 31/03/2017 à 13:38:37, Herbienj a dit :

“OpenBSD est le meilleur de tous les Linux !”

Sauf qu'à lire le site officiel d'OpenBSD on voit que OpenBSD est un système Unix-Like et pas Linux !

le 31/03/2017 à 13:53:11, kobol a dit :

Si openbsd est aussi simple. Pourquoi, il a une réputation de poisson qui pique ?.

le 31/03/2017 à 15:42:33, thuban a dit :

@Herbienj : je sais bien, c'était le trolldi ^^

le 31/03/2017 à 16:35:41, Mathias a dit :

super. je n'ai plus de raison de ne pas l'installer maintenant. beau boulot

le 31/03/2017 à 18:46:15, 22Decembre a dit :

On remarquera que Systemd apporte quand même une grosse dose de mutualisation de code. Quelque part, c'est un peu ce qui est fait avec rc.subr.

>Sauf qu'à lire le site officiel d'OpenBSD on voit que OpenBSD est un système Unix-Like et pas Linux !

Oui, sauf que pour moi, quand je regarde de loin, j'y vois qu'une distro Linux:

- Même architecture générale (/usr, /var, /etc …) et même fonctions de bases (NFS…)
- Il y a un pare-feu, un RC et un outil de gestion des paquetages spéciaux. Pile-poil là où les distro Linux se distinguent les unes des autres.

En fait ce que je remarque, c'est que GNU/Linux et BSD sont bien des Unix. Sortis de ca, tout est permis. En somme je devrais parler de distro Unix.

>Si openbsd est aussi simple. Pourquoi, il a une réputation de poisson qui pique ?

Parce que dans bien des cas, le système est moins souple qu'un vrai Linux. Il est moins intransigeant sur la sécurité. C'est la merde d'installer certains trucs exotiques quand ca se fait en deux coups de cuillère à pot sur une Debian même pas à jour, et le système a encore des zones pas à jour (regarde vers la pile réseau IPv6) quand ces fonctions sont dispo depuis des années sous Linux, etc.

le 05/04/2017 à 10:05:03, kobol a dit :

@22Decembre :

Bonjour 22decembre

Pour GNU/linux, GNU est la partie hippie du libre (cote Richard stallman). Linux, si on faire un troll de l extreme (c est le cote propriétaire, Linus torvald).

La communauté GNU croyait a une séparation future de linux avec le noyau hurd. Malheureusement, elle tend plus vers un rapprochement de Freebsd. Avec un essai de jumelage des outils GNU avec ce noyau. (Voir kfreebsd)
Linux, a maintenant pris une décision voir une direction. Linus a toujours était proche du cote propriétaire, maintenant linux et windows officiellement et utilise des outils dit libre. ( voir gplv2, gplv3)

Pour les distro BSD, ce sont 3 visions très distinctes:

Netbsd: doit être installable sur tout

Freebsd: ouvertes tous et tout, l innovation est le mot d ordre

Openbsd: la sécurité en premier mot d ordre

Pour l ipv6 et le 64bits. Regarde le nombre d appareils qui sortent en 2017, et qui ne sont pas compatible. Et pourtant, c est mieux. 😕