Comment puis-je émettre des mises à niveau apt sans arrêter/démarrer automatiquement les démons? J'aimerais redémarrer manuellement les services.
Pour citer un exemple spécifique:
Je vais revenir sur une machine qui tourne depuis longtemps et lancer Sudo apt-get update && time Sudo apt-get dist-upgrade
. Il s'agit d'un moyen très simple de voir toutes les mises à niveau disponibles, suivies d'une simple pression sur la touche Entrée pour que les systèmes soient entièrement corrigés.
Si je vois postgresql-9.1
dans la liste de mise à niveau, j'annule la mise à niveau. Dans ce cas, apt arrêterait le service tôt dans le processus, appliquerait plusieurs opérations non critiques, puis redémarrerait le service beaucoup plus tard. Une mise à niveau de routine peut entraîner des minutes d'indisponibilité.
J'aimerais dire "oui" à la mise à niveau pour que tous les correctifs soient appliqués, puis redémarrer manuellement le service à un moment opportun.
Vous pouvez empêcher les redémarrages de service avec la couche de stratégie Debian, qui fonctionne également sur Ubuntu.
Exemple: Créez un fichier nommé /usr/sbin/policy-rc.d
avec le contenu suivant (n'oubliez pas de rendre le fichier exécutable):
#!/bin/sh
exit 101
Aucun service¹ ne serait automatiquement démarré/arrêté/redémarré. Voir /usr/share/doc/sysv-rc/README.policy-rc.d.gz
pour plus de détails et comment l’ajuster pour ignorer un seul service.
1. tant que les scripts d'installation suivent les instructions de Debian et utilisent invoke-rc.d pour les redémarrages de service
J'aimerais dire "oui" à la mise à niveau pour que tous les correctifs soient appliqués, puis redémarrer manuellement le service à un moment opportun.
Vous ne pouvez pas faire cela dans le cas général, désolé. Même si un service n'est pas redémarré, les packages ne permettent pas de garantir que les mises à niveau sans redémarrage du service ne casseront rien (par exemple, tout ce qui est chargé dynamiquement, comme les modules).
Si vous voulez un système stable, vous devez soit empêcher la mise à jour d'un paquet, soit le mettre à jour complètement, avec un redémarrage du service.
Je ne peux pas vraiment indiquer une source crédible ici, car je ne peux pas prouver un négatif. politique Debian est pertinent ici; il ne fournit tout simplement pas la garantie que vous recherchez. Selon la politique de Debian, la fonctionnalité d’un paquet n’est pas obligée de fonctionner tant que le postinst n’est pas terminé avec succès. Nous pouvons donc en déduire que si le postinst inclut un redémarrage de service obligatoire, cela doit se produire.
Quelques autres mécanismes qui pourraient vous aider:
apt-get --download-only upgrade
pour télécharger les mises à jour à l'avance.Il existe un outil basé sur la CLI nommé sysv-rc-conf . Vous pouvez également le faire installer en exécutant la commande suivante dans le terminal:
Sudo apt-get install sysv-rc-conf
Ensuite, vous pouvez l'activer/l'ouvrir en lançant:
Sudo sysv-rc-conf
Capture d'écran: