Je ne suggère pas de faire ce qui suit si vous n'êtes pas forcé par des raisons vraiment spéciales:
kill -SEGV 1 # should generate a core dumps and kernel panic
kill -ABRT 1 # should generate a core dumps and kernel panic
kill -9 1 # On old systems worked nowadays not
C'est rude, brutal et cela peut être considéré comme un équivalent équivalent à débrancher le cordon d'alimentation ...
La bonne façon est shutdown -h now
d' sudo
avancer en cas de besoin.
Je devrais peut-être dire la manière légale ; voir ci-dessous ou mieux tl; dr.
Quelques mots de plus , alias L'histoire, Chapitre I
Au début était l'init et ce sera jusqu'à la fin.
L'ensemble de Linux dépend du soin affectueux d' init [ 1 ] [ 2 ] . Néanmoins et non sans une certaine ingratitude, il fut un temps où l' utilisateur root du bon Dieu pouvait trahir cet amour et kill
commencer soudainement avec un ordre incontournable ( -9
).
( Le Book of Etiquette prescrit aux comtes, aux ducs et aux marquises les utilisateurs à invoquer avant a sudo
).
Ensuite, certains sorciers ont fait un charme pour protéger init (du livre de man 2 init
)
Les seuls signaux pouvant être envoyés à l'ID de processus 1, le processus init, sont ceux pour lesquels init a explicitement installé des gestionnaires de signaux. Ceci est fait pour s'assurer que le système n'est pas arrêté accidentellement.
(Nos espions rapportent [ U1 ] qu'init va gérer 1 HUP 6 ABRT 11 SEGV 15 TERM 30 PWR 2 INT 10 USR1 14 ALRM 17 CHLD 32)
Donc, le bon utilisateur root apprend les nouvelles et modifie la commande kill -ABRT 1
ou kill -SEGV 1
qui génère généralement un panique du noyau et vidage de mémoire.
Cela fonctionne car init est le premier processus à s'exécuter et prend le numéro PID 1 [ 2b ] .
C'est dangereux, imprudent et vous sentez que cela annonce un mauvais présage et une malédiction, mais si vous ne pouvez pas matériellement mettre les mains et le débrancher ...
La malédiction : il n'écrira pas sur le journal, il ne tuera pas tous les processus et n'attendra pas leur fin, il n'écrira pas sur le disque dur en mettant correctement à jour les inodes et il ne démontera pas les systèmes de fichiers; cela ne me dérange même pas que cela sauvera les options des fenêtres graphiques et les historiques de shell, et bien d'autres au-delà de notre imagination ... comme nous l'avons dit, l'équivalent de débrancher l'accord de puissance ou la batterie si un ordinateur portable.
La manière correcte
"Non nobis, Domine, non nobis, sed nomini tuo da gloriam.", Devise des Templiers.
La manière légale (correcte) est d'utiliser shutdown
[ 3 ]
sudo shutdown -h now
l'arrêt permet d'arrêter le système en toute sécurité. Tous les utilisateurs connectés sont informés que le système est en panne et ...
mais avec -h now
eux, ils n'auront pas assez de temps pour en faire autant ...
Quelques mots de plus , alias L'histoire, Chapitre II
Il était une fois des pas de logique ressentis du ciel au-dessus du peuple unix:
Une fois les processus système arrêtés et les systèmes de fichiers démontés, le système s'arrête / s'éteint ou redémarre automatiquement. Cela se fait à l'aide de la commande d'arrêt ou de redémarrage, qui synchronise les modifications sur les disques, puis effectue l'arrêt / la mise hors tension ou le redémarrage réels. [ 4 ]
En effet, de nos jours, nous ne faisons pas confiance plus dans l'existence des trois Moires [ 5 ] du monde Linux , reboot
, poweroff
et halt
[ 6 ] : la science moderne de ls -l $(which poweroff halt reboot)
et celui des man reboot
spreads nouvelle lumière sur cet âge sombre et nous révèlent qu'il n'existe qu'une seule vraie commande qui analyse toutes leurs options afin que nous soyons enfin libres de demander des actions contredisant leurs noms de commandes! ( halt -p
ou reboot -p
pour poweroff
, shutdown -r
pour reboot
...)
Maintenant que tout semblait être clair et confortable pour tous, des rumeurs prétendent [ 7 ] que dans le monde souterrain de l' ensemble d'outils systemd [ 8 ] une révolution a été effectuée laissant l'ignorance du monde entier . Grâce à une armée de cales à compatibilité ascendante, nous n'avons pas remarqué du tout que le redémarrage, la mise hors tension, l'arrêt [ 6 ] et même le telinit [ 9 ] et l'arrêt [ 3 ] sont déjà tous liés au nouveau système roictctl [ 10 ]. Veuillez écouter toute l'histoire de la voix originale de JdeBP The Bard [ 9 ] car je n'ai plus de souffle.
Si vous êtes un adepte du culte Ubuntu, vous pouvez toujours rester au courant pendant un certain temps de toutes ces affirmations [ 11 ] .
La Terre du Milieu halt -f
, init
, telinit
, la systemctl
recherche de solution plus rapide que celle correcte mais aussi sage.
systemctl --force --force poweroff # the most close to kill -9 1
systemctl --force poweroff # rough but still safe
sudo halt -f # rough
sudo telinit 0 # or 6 # safe
kill -SIGINT 1 # cause reboot as the reboot command
kill -SIGRTMIN+4 1 # cause shutdown as the halt command
Que vous soyez sous systemd ou non, vous devriez pouvoir arrêter l'ordinateur sans invoquer toutes les procédures de shudown correctes (et donc plus rapidement):
halt -f
: spécifiant l'option-f
(notez que vous devez -f
éviter la procédure d'arrêt) avec la commande ci-dessus, avec sudo poweroff -f
ou peut-être même avec sudo reboot -f -h
. En effet, nous pouvons lire man reboot
(et équivalents) sur la nécessité de spécifier l'option -f
pour éviter d'appeler l'arrêt:
Lorsqu'il est appelé avec --force ou lorsqu'il est au niveau d'exécution 0 ou 6, cet outil appelle l'appel système reboot (2) lui-même (avec l'argument REBOOTCOMMAND passé) et redémarre directement le système .
Sinon, cela appelle simplement l'outil shutdown (8) avec les arguments appropriés sans passer l'argument REBOOTCOMMAND.
-f, --force N'invoque
pas shutdown (8) et effectue à la place l'action réelle que vous attendez du nom .
De plus, vous pouvez utiliser telinit
[ 2b ] (ou init
directement)
sudo telinit 0 # or 6
dire à init de changer le niveau d'exécution ... mais si oui, pourquoi ne pas le tuer directement?
Sous systemd, vous pouvez utiliser l'option double imprudente --force --force
systemctl --force --force poweroff
Lecture du manuel systemctl [ 10 ]
-f, --force
Lorsqu'il est utilisé avec enable, écrase tout lien symbolique conflictuel existant.
Lorsqu'il est utilisé avec halt
, poweroff
,reboot
ou kexec, exécuter l'opération sélectionnée sans arrêter toutes les unités. Cependant, tous les processus seront supprimés de force et tous les systèmes de fichiers sont démontés ou remontés en lecture seule. Il s'agit donc d'une option drastique mais relativement sûre pour demander un redémarrage immédiat. Si --force est spécifié deux fois pour ces opérations, elles seront exécutées immédiatement sans arrêter aucun processus ni démonter aucun système de fichiers. Avertissement: spécifier --force deux fois avec l'une de ces opérations peut entraîner une perte de données.
Ps> Inspirez-vous des variantes de la queue JdeBP The Bard [ 7 ] .