Passer à systemd sur un VPS OpenVZ avec Debian Jessie
Passer d'upstart à systemd sur une machine OpenVZ sous Debian Jessie.
Attention : je n'ai pris aucune précaution, je ne pourrais être tenu pour responsable de quoique ce soit. Je suis d'ailleurs tout à fait irresponsable.
L'un des VPS que j'administre utilisait upstart
comme système d'initialisation, parce que le noyau OpenVZ n'a longtemps pas supporté systemd
, ou inversément systemd
ne supportait pas les vieux noyaux d'OpenVZ, toujours est-il que la cohabitation était controversée.
Le noyau d'OpenVZ est basé sur Linux 2.6.32. 2009, tout de même ! C'est le noyau qui propulsa à leur époque (2009) Ubuntu 10.04 LTS « Lucid Lynx » et Debian 6.0 « Squeeze ». Or, Debian 8.0 « Jessie », sortie en avril 2015, intégra le noyau Linux 3.16, et passa de sysvinit
à systemd
comme système d'initialisation par défaut.
Donc les services, scripts, etc, sont par défaut écrits pour fonctionner avec systemd
. Et depuis quelques temps, le noyau OpenVZ permet de parler la même langue que systemd
(grosso modo). Et j'avais envie de tester le changement, sachant que j'avais transféré ma machine sur un dédié Kimsufi.
Donc, on se lance.
Dans une session SSH, je lance l'installation par aptitude
, qui intègre un outil de résolution des conflits et offre des solutions de remplacement en cas d'installation problématique.
aptitude install systemd systemd-sysv
aptitude
propose de remplacer upstart
par systemd
: il suffit d'accepter.
Plus qu'à redémarrer. Le système va se plaindre de ne pas pouvoir utiliser l'init
pour lancer la commande reboot
proprement (normal, vu qu'on vient d'en changer).
Pour être au minimum propre (ce que je n'ai pas fait), on peut stopper proprement les services chatouilleux, MySQL & co. Puis redémarrer brutalement :
reboot -f
La connexion est perdue directement. Quelques secondes à attendre avant de relancer une session SSH et tenter de se connecter à la machine.
-
Connexion établie ? Bravo, tout s'est bien passé ! On peut maintenant balancer
systemctl --failed
pour voir s'il y a des services défectueux qui trainent sur la machine. -
Connexion impossible ? Too bad! Vous venez de tuer votre machine qui ne démarrera plus en l'état. Contactez votre hébergeur, réinstallez votre machine, faites vous un thé.