poweroff
se plaint qu'il ne peut pas se connecter à systemd via DBus (bien sûr, il n'est pas vivant). J'ai sync
suivi kill $$
, pensant que la mort du pid 1 entraînerait la mise hors tension du noyau, mais cela a provoqué une panique du noyau. J'ai ensuite maintenu le bouton d'alimentation pour forcer la mise hors tension.
Quel est le moyen le plus approprié de mettre hors tension dans ce scénario?
init=/bin/bash
indication / implication est ambigu si systemd est installé ou non. J'avais voulu dire qu'il n'y avait pas de système en cours d'exécution . Dans tous les cas, n'ayant pas de systemd en cours d'exécution, je pensais que le jeu d'outils systemd serait inutile et que les réponses utiliseraient d'autres moyens comme ceux concernant sysrq.Réponses:
Démontez les systèmes de fichiers que vous avez montés. Le système de fichiers racine est un cas spécial; pour cela, vous pouvez utiliser
mount / -o remount,ro
. Sous Linux,umount /
il arrive également de fonctionner, car il est effectivement converti en l'ancienne commande.Cela dit, vous n'avez pas à vous soucier de trop démonter, sauf si
sync
devrait suffire et le système de fichiers se réparera très rapidement au prochain démarrage.Ce qui précède est la partie importante. Après cela, vous pouvez également mettre le matériel hors tension en utilisant
poweroff -f
. Ou redémarrez avecreboot -f
.Il y a un
systemd
équivalent de Spécifiquespoweroff -f
:systemctl poweroff -f -f
. Faitpoweroff -f
la même chose etsystemd
prend en charge cette commande même si elle a été construite sans compatibilité SysV.Techniquement, je me souviens que mon disque dur USB a été documenté comme nécessitant un "retrait sûr" de Windows ou équivalent. Mais cette exigence n'est pas sûre contre les pannes de courant, et Linux ne le fait pas de toute façon lors d'un arrêt normal. Il vaut mieux l'interpréter comme signifiant que vous ne devriez pas faire du jogging sur le disque dur pendant qu'il tourne, y compris en essayant de le débrancher. Une mise hors tension complète devrait arrêter le disque de tourner. Vous pouvez probablement entendre, ressentir ou voir si cela ne s'arrête pas :-).
la source
sync()
suffit pour ext2. Il se plaindra d'être sale mais n'aura pas été réellement corrompu, à l'exception des informations résumées. Je considère généralement init = / bin / bash ou tout équivalent local comme une situation d'urgence.fsck.mode=skip
bien?fsck.mode=skip
pour démarrer normalement après un démontage impur!Je vais simplement exécuter ci-dessous deux commandes:
En supposant que la clé magique est activée dans le noyau
la source
Ok, alors je viens de penser que j'avais la possibilité de le faire
exec init
. De là, je pourrais probablement le faire plus tardpoweroff
. Je me demande cependant s'il existe de meilleures alternatives.la source
exec init 0
. Cela ne fonctionnera pas avec tous les systèmes d'initialisation, mais les mêmes passeront par une séquence d'arrêt.En effet, vous voulez appeler syscall reboot (2) .
Vous pouvez le faire de deux manières:
Exécutez
reboot -f
oupoweroff -f
, cela devrait appelerreboot(2)
directement.Si vous êtes sur le vrai terminal virtuel Linux (pas l'émulateur de terminal GUI), en appuyant sur Ctrl+ Alt+ Delete.
Notez que le raccourci clavier peut être désactivé par un programme de l'espace utilisateur (généralement init), lorsqu'il est désactivé, le raccourci enverra un signal à init à la place.
Toutes les commandes ci-dessus doivent être exécutées après avoir démonté tous les disques ou remonté en lecture seule et exécuté la synchronisation, sinon vous risquez de perdre des données non écrites. Si votre shell est le seul processus en cours d'exécution, la synchronisation peut être suffisante.
la source
Vous pouvez utiliser les clés Magic SysRq ( https://en.wikipedia.org/wiki/Magic_SysRq_key ) pour éteindre votre ordinateur.
Pour fermer correctement, vous pouvez utiliser ce qui suit (formulaire de devis Wikipedia):
Mais en remplaçant le dernier B par O (pour azerty / qwerty) par "power O ff"
la source