En exécutant Ubuntu 14.04 dans une salle informatique publique, j'ai activé les mises à niveau sans surveillance et configuré pour redémarrer à 02h00 dans la nuit. Les ordinateurs sont à double amorçage. Un utilisateur doit donc redémarrer l’ordinateur pour amorcer l’autre système d’exploitation. Toutefois, si uu avait installé des mises à jour et l’a configuré pour le redémarrer, les utilisateurs ne pourraient pas le faire eux-mêmes. sur l’icône représentant une roue dentée, puis choisissez arrêt et redémarrage, le système ne fait tout simplement rien.
Si je me connecte en tant qu'utilisateur root et que j'essaie d'émettre une commande de redémarrage, la réponse est "un autre arrêt est déjà en attente". Je dois donc arrêter -c pour l'annuler et pouvoir ensuite redémarrer. Ce n’est évidemment pas ce que je veux, car les utilisateurs devraient pouvoir redémarrer à tout moment sans intervention de ma part (ou racine).
Quelqu'un pourrait-il m'aider à atteindre mon objectif (= avez-vous configuré pour une installation automatique et un redémarrage à 2 heures du soir, permettant aux utilisateurs de redémarrer/arrêter à leur guise, sans leur donner les autorisations root)?
Merci beaucoup,
Andrea
Unattended-Upgrades est actuellement configuré pour redémarrer l'ordinateur à 02h00 si la mise à jour nécessite un redémarrage. Cette étape va arrêter ce comportement.
Étape: éditez le fichier /etc/apt/apt.conf.d/50unattended-upgrades
Dans le fichier, recherchez la ligne:
unattended-Upgrade::Automatic-Reboot "true";
et le faire ressembler à:
Unattended-Upgrade::Automatic-Reboot "false";
Le script ci-dessous vérifie si le fichier reboot-required
existe et, le cas échéant, redémarre l'ordinateur immédiatement. Appelons ce fichier reboot_if_needed.sh
.
#!/bin/bash
if [ -f /var/run/reboot-required ]; then
echo $(date) Sytem restart required by: $(cat /var/run/reboot-required.pkgs)
/sbin/reboot now
fi
Enregistrez ce fichier sous /opt/bin/reboot_if_needed.sh
Rendre ce fichier exécutable:
Sudo chmod + x /opt/bin/reboot_if_needed.sh
Explication
Lorsque le script est exécuté et que le fichier var/run/reboot-required
existe, il génère du texte qui sera capturé dans un fichier journal /var/log/reboot_history.log
. Ensuite, le système va redémarrer.
reboot_if_needed.sh
tous les soirs à 2h00Nous voulons exécuter le script avec des privilèges d'administrateur. Nous utilisons donc Sudo
. Ouvrez un terminal en appuyant sur Ctrl+Alt+T et entrez:
Sudo crontab -e
Cette commande ouvre le fichier crontab de l'utilisateur root, s'il en existe un, ou crée un nouveau fichier vierge. Ajoutez la ligne suivante à la fin du fichier:
0 02 * * * /opt/bin/reboot_if_needed.sh >> /var/log/reboot_history.log
Si vous utilisez nano
comme éditeur de fichier texte, quittez l’éditeur en appuyant sur Ctrl+X. L'éditeur vous invitera à enregistrer les modifications. presse Y puis appuyez sur Enter pour sélectionner le nom de fichier par défaut.
Explication
La ligne ajoutée à la variable crontab
fera exécuter le script reboot_if_needed.sh
toutes les nuits à 2 heures du matin. Le >>
redirige la sortie vers le fichier /var/log/reboot_history.log
. Ce fichier sera créé la première fois que crontab
exécute le script.
Voir https://help.ubuntu.com/community/CronHowto pour savoir comment utiliser crontab.
Unattended-Upgrade planifie apparemment le redémarrage avec un délai. Par exemple:
Sudo shutdown -r 02:00
La commande ci-dessus planifie le redémarrage à 2 heures du matin. Quand une telle commande est en vigueur, vous obtenez le message "un autre arrêt déjà en attente".
Nous utilisons crontab pour prendre en charge le démarrage du processus de redémarrage à 2 heures du matin, au lieu de le planifier depuis la commande shutdown
. Ainsi, il n'y a pas d'arrêt en attente une fois l'exécution de la mise à niveau sans assistance. Tout utilisateur peut redémarrer l'ordinateur.
Lorsqu'un utilisateur redémarre l'ordinateur, le fichier /var/run/reboot-required
s'il est sorti est supprimé par le système, car le redémarrage n'est plus nécessaire. L'ordinateur ne sera pas redémarré à 2 heures du matin par le script.
J'espère que cela t'aides