Vraag "Reboot" of "shutdown -r now": welke herstartopdracht is veiliger?


We hebben in onze organisatie ongeveer ~ 500 RedHat Linux-machines.

Op alle machines hebben we toepassingen en services geïnstalleerd /etc/init.den oracle RAC-servers. We zijn van plan om yum-updates uit te voeren op alle machines en daarna opnieuw opstarten.

Dus ik vroeg me af welk commando veiliger is:

reboot

of

shutdown -r now

41
2018-06-30 13:07


oorsprong


Mogelijk duplicaat van: Wat is het verschil tussen reboot, init 6 en shutdown -r nu? - Henrik Pingel
we hebben allemaal soort - als redhat 4,5,6,7 - dandan
Laten we terugspoelen: waarom denk je dat er een verschil is in veiligheid? - underscore_d
@underscore_d: het is niet onredelijk om te denken dat het een "intern-alleen-gebruiken" -commando is dat niet dezelfde schone shutdown-stappen uitvoert. Bijv. misschien gebruikt men de andere na het uitvoeren van een aantal initiële stappen voor het opschonen van de reiniging. Natuurlijk legt de man-pagina dat uit rebootis gewoon een legacy-commando en bestaat nog steeds alleen voor achterwaartse compatibiliteit. - Peter Cordes
@kennis Een vraag kan geen duplicaat van een vraag zijn op een verschillend website .. - Insane


antwoorden:


Voor Red Hat-systemen, er is geen functioneel verschil tussen reboot en shutdown -r now.

Doe wat voor u gemakkelijker is.


48
2018-06-30 13:10



Maar je gaat meer typen en het is fundamenteel 'cooler'! - Insane
De ene vereist supergebruikerstoegang, de andere kan worden uitgevoerd door elke gebruiker (tenzij beperkt) van een X-sessie. - Burhan Khalid
@BurhanKhalid Als u willekeurige mensen hebt die zich aanmelden bij X-sessies op servers, heeft u misschien grotere problemen dan zich af te vragen welke van twee opdrachten "veiliger" is. - α CVn
Op zijn minst op Debian (hoewel ik snel zal toegeven dat ik niets weet over Red Hat, maar het antwoord van Janne Pikkarainen suggereert dat het vergelijkbaar kan zijn, maar anders), halt, reboot en poweroff accepteer geen redenbericht noch een tijd, zoals Michail T. uitlegde. Ik denk dat ik één hulpmiddel zou overwegen om iets te kunnen doen waarvan een ander niet toestaat dat het een "functioneel verschil" is. - α CVn


Shutdown verdient de voorkeur omdat u hiermee de. Kunt specificeren reden voor de drastische actie - iets wat je altijd moet doen. Het bericht wordt opgenomen in de log (ten) voor het nageslacht. Bijvoorbeeld:

shutdown -r now 'Kernel upgrade requires reboot'

U kunt ook een gepland herstart - door iets anders op te geven dan now als de herstarttijd:

shutdown -r 22:00 'Work around kernel memory leak'

Dan krijgen uw gebruikers periodieke herinneringen om eruit te komen enzovoort - het proces zal ordelijker en professioneler verlopen.


81
2018-06-30 17:05





Als je even kijkt, in RHEL 7 allebei /sbin/shutdown en /sbin/reboot zijn eigenlijk gewoon symlinks naar systemd's systemctl commando. Gebruik dus wat je wilt. Geen functioneel verschil zoals ewwhite vertelde, zelfs niet in eerdere releases van RHEL die nog geen systemd gebruikten.


13
2018-06-30 13:17



Ik vind dit argument niet erg overtuigend: het is duidelijk dat /sbin/shutdown en /sbin/reboot do niet zich in alle gevallen hetzelfde gedragen (in het bijzonder: /sbin/shutdown wordt standaard niet opnieuw gestart!), dus als ze met hetzelfde uitvoerbare bestand zijn gekoppeld, moet dat uitvoerbare bestand zijn ARGV[0] en het aanpassen van zijn gedrag dienovereenkomstig. Terwijl dat het risico van onopzettelijk verschillen, het is geen overtuigend bewijs dat er geen opzettelijk functionele verschillen waar het OP misschien iets over wil weten. - ruakh
Pas op voor het aannemen van een symlink gelijkwaardigheid impliceert, vooral als er verschillende namen bij betrokken zijn. - mckenzm
ruakh heeft gelijk - denk er even over na, hoewel reboot is symbolisch aan systemctl, je kunt bijvoorbeeld geen gebruik maken van reboot status whatever.service zoals jij zou doen met de laatste, kan jij? - grawity


Gebruik makend van reboot is veiliger.

Gebruik makend van reboot je intentie is duidelijk en er is geen manier om het te typeren voor iets anders zoals shutdown -t now wat kan leiden tot enkele hoofdpijn als u op een externe server met beperkte controle gebruikt.


7
2017-07-04 05:16



IMHO onderschatte antwoord. Heel vaak vergeten we hoe belangrijk het is om bedoelingen duidelijk te maken en hoeveel tijd en scheldwoorden het op de lange termijn bespaart! - Eggplant


Voor moderne RHEL wordt u aangeraden om de opdracht systemctl te gebruiken zoals hier samengevat: [Recent] RHEL-distributies zouden de nieuwe systemctl-opdracht moeten gebruiken om poweroff / reboot uit te geven. Zoals vermeld in de manpages van reboot en shutdown zijn ze "een verouderde opdracht die alleen beschikbaar is voor compatibiliteit".

Als u echter veel verschillende distributies of distributies van verschillende jaargangen gebruikt, kunt u er misschien aan vasthouden shutdown -r now 'reason for shutdown'.

De belangrijkste reden om te gebruiken reboot zou zijn om het risico te vermijden van het vergeten om de -r toe te voegen bij gebruik shutdown -r op een externe machine, wat er gemakkelijk toe kan leiden dat u niet opnieuw kunt inloggen en de externe beheerder (indien beschikbaar) moet gebruiken om de machine opnieuw te starten.


1
2017-07-17 04:48





Oudere systemen maakten duidelijk een onderscheid tussen shutdown en reboot. Deze laatste zou geen services afsluiten of zelfs maar schijfbuffers synchroniseren. In heterogene omgevingen - of om een ​​precedent te vermijden dat in de toekomst gevaarlijk kan zijn bij het tegenkomen van andere * ix-implementaties - is het waardevol om bij de shutdown gewoonte.


0
2017-07-27 23:00