3 votes

"phpsessionclean" le service systemd ne se lancera pas sur Ubuntu 18.04 (après la mise à jour depuis Ubuntu 14.04)

Après avoir mis à jour tous nos anciens serveurs Ubuntu 14 vers Ubuntu 18, les fichiers de session PHP ont cessé d'être nettoyés. Je ne suis pas sûr que cela soit causé par la mise à niveau elle-même, mais tous nos autres serveurs qui ont été créés sous Ubuntu 18, ou mis à niveau depuis Ubuntu 16, fonctionnent comme prévu.

Le problème est que le service systemd phpsessionclean ne parvient pas à s'exécuter. Voici l'erreur qu'il me donne, la même sur tous les serveurs mentionnés :

systemd[22064] : phpsessionclean.service : Échec de la configuration de l'espacement de nom de montage : Aucun fichier ou dossier de ce type
systemd[22064] : phpsessionclean.service : Échec à l'étape NAMESPACE en train de lancer /usr/lib/php/sessionclean : Aucun fichier ou dossier de ce type

Le script /usr/lib/php/sessionclean existe certainement et je ne remarque rien d'inhabituel concernant ses autorisations.

Nous utilisons PHP7.2 installé à l'aide de apt à partir de ppa:ondrej/php

Les choses que j'ai essayées :

  • Réinstallation forcée de php7.2, php-common, php7.2-common
  • Désactivation et suppression de phpsessionclean.service et phpsessionclean.timer de systemd et leur recréation lors des réinstallations apt ainsi que leur copie manuelle depuis les serveurs où ils fonctionnent correctement
  • Suppression et réinstallation du script /usr/lib/php/sessionclean

À ce stade, je ne sais pas quoi d'autre essayer / où chercher. Je n'ai pas pu trouver quelqu'un ayant des problèmes similaires. Mais le comportement est très cohérent sur tous nos serveurs mis à niveau depuis Ubuntu 14.

Solution de contournement que je considère :

Supprimer les services systemd et changer /etc/cron.d/php de :

09,39 *     * * *     root   [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi

à :

09,39 *     * * *     root   if [ -x /usr/lib/php/sessionclean ]; then /usr/lib/php/sessionclean; fi

... et nettoyer les sessions avec une tâche cron (actuellement non effectuée car elle échoue lors de la vérification de systemd).

Mais je suis curieux de savoir pourquoi le service installé ne s'exécute pas. Merci!

1voto

Ivan Buttinoni Points 2360

Systemctl modifier phpsessionclean.service

[Service]
PrivateTmp=false
NoNewPrivileges=yes
ProtectHome=false
ProtectSystem=false

1 votes

Merci, cela semble faire fonctionner le service. Mais je ne sais pas pourquoi et je ne veux pas apporter de modifications aux serveurs que je ne comprends pas. Pourriez-vous expliquer quel était le problème et pourquoi c'est une solution ? Cheers

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X