Arrêter proprement sa machine à l'aide d'un script

A priori pas besoin d’être root pour exécuter poweroff

Faudrait apprendre à lire correctement.
Ce que j’ai décrit c’est la commande systemctl

Merci de ton amabilité :wink:
Je lis correctement mais je ne me suis peut-être pas exprimé de manière complète.
L’arrêt de l’ordinateur ne nécessite pas, a priori, les droits root, que ce soit avec systemctl poweroff ou la commande équivalente poweroff du paquet sysdemd-sysv. Idem avec halt.

Je t’invite à essayer dans un terminal avec un utilisateur standard.

Et moi je t’invite à essayer la commande avec tous ses paramètres

systemctl poweroff -i -f

J’ai testé la commande hier soir et elle fonctionne parfaitement.
Pour le reste, je ferai cet AM ou ce soir car très occupé ailleurs aujourd’hui.

La demande initiale était d’arrêter « proprement ». Évidemment l’option -f exige les droits root puisque cela force tous les processus à être tués et à démonter tous les systèmes de fichiers. Ce n’est pas la manière la plus propre d’arrêter un système…
Si on veut un moyen simple et rapide d’arrêter le système correctement, sans risque de perte de données, il suffit d’utiliser en tant que simple utilisateur :
systemctl poweroff
Dans un environnement de bureau on peut créer un lanceur pour cette commande, ou mieux l’associer une touche (ou combinaison de touches) de clavier prévue à cette effet.

1 J'aime

Le bon vieux halt , c’est quand même moins long à taper.

Oui, Matt, mais est-il suffisant pour arrêter proprement tout ce qui demande de l’être ?
C’est un peu comme Ctrl+Alt+Suppr, non ?

C’est exactement comme Ctrl+Alt+Suppr et systemctl poweroff, oui, et c’est aussi propre dans tous les cas, vu qu’aussi bien le Ctrl+Alt+Suppr que halt ou reboot sont des wrappers appelant la commande systemctl de reboot ou de halt qui correspond.

halt et poweroff c’est pas exactement la même chose

halt
Shut down and halt the system Note that this operation will simply halt the OS kernel after shutting down, leaving the hardware powered on. Use systemctl poweroff for powering off the system

Donc quand on veut faire des économies d’énergie c’est poweroff

Bah on a pas la même page de man pour halt:

HALT(8)

NAME
       halt, poweroff, reboot - Halt, power-off or reboot the machine
(...)
NOTES
       These commands are implemented in a way that preserves 
       compatibility with the original SysV commands.  systemctl(1)
       verbs halt, poweroff, reboot provide the same functionality with
       some additional  features.

Bonjour,

Une précision svp,

que fait par défaut la commande shutdown (now) :

  • poweroff
    ou
  • halt
    ?

Le man “shutdown” est très explicite.0

je me suis aussi amusé avec le bouton d’alimentation

aka “mode panique”

Justement non ou au moins pas pour moi,
et
j’ai pris le temps et la peine de relire 2 < fois :

SHUTDOWN(8) Manuel de l’administrateur système Linux SHUTDOWN(8)

NOM
shutdown - Arrêter le système

SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] heure [message-avertissement]

DESCRIPTION
shutdown arrête le système d’une façon sécurisée. Tous les utilisateurs connectés sont informés que le système va s’arrêter, et login(1) est bloqué. Il est possible d’arrêter
le système immédiatement ou après un certain délai. En premier lieu, tous les processus sont informés que le système est en train de s’arrêter par le signal SIGTERM. Cela donne
le temps à des programmes comme vi(1) de sauvegarder le fichier en cours d’édition, la chance à des programmes de traitement de mails et de News de se terminer proprement, etc.
shutdown fait son travail en envoyant un signal au processus init, lui demandant de modifier le niveau d’exécution. Le niveau d’exécution 0 est utilisé pour arrêter le système,
le niveau 6 pour le redémarrer, et le niveau 1 pour le mettre dans un état où des tâches d’administration peuvent être effectuées ; c’est le comportement par défaut si aucune
des options -h et -r n’est donnée à shutdown. Pour voir quelles actions sont entreprises durant l’arrêt ou le redémarrage, voyez les entrées appropriées pour ces niveaux d’exé‐
cution dans le fichier /etc/inittab.

HALT OU POWEROFF
L’option -H ne fait que positionner la variable d’environnement INIT_HALT d’init à la valeur HALT et l’option -P la positionne à la valeur POWEROFF. Le script d’extinction qui
appelle halt(8) à la fin de la séquence d’arrêt devrait vérifier cette variable et appeler halt(8) avec les bonnes options pour que ces options aient un effet. Debian 3.1
(sarge) gère ces options.

ne me dis pas explicitement si shutdown sans option,
est un arrêt électrique total ou non

Remarque : avant l’intervention de Grandtoubab

Je n’avais pas connaissance de ces différences.

$ ls -alrt /usr/sbin/shutdown
lrwxrwxrwx 1 root root 14 juil. 18 19:38 /usr/sbin/shutdown -> /bin/systemctl
$ ls -alrt /usr/sbin/halt
lrwxrwxrwx 1 root root 14 juil. 18 19:38 /usr/sbin/halt -> /bin/systemctl
$ ls -alrt /usr/sbin/poweroff
lrwxrwxrwx 1 root root 14 juil. 18 19:38 /usr/sbin/poweroff -> /bin/systemctl

Dorénavant le seul manuel qui compte c’est:

https://www.systutorials.com/docs/linux/man/1-systemctl/

OK!

Merci

A priori shutdown sans argument fait poweroff

     -P, --poweroff
           Power-off the machine (the default).

C’est ce dont j’avais le ressenti.

Mais les manuels diffèrent d’un système à l’autre,
j’ai :

  -P     L'action de halt est de couper le courant.

Merci.

Il vaut mieux se fier aux pages de manuel anglophones. Les traductions ne sont pas toujours à jour. Ce qui est le cas pour la page de manuel de shutdown : la version française concerne l’ancienne version de shutdown , antérieure à systemd.