“Yeniden başlat” veya “şimdi kapat -r”: hangi yeniden başlatma komutu daha güvenli?


49

Kuruluşumuzda ~ 500 RedHat Linux makinesi bulunmaktadır.

Altındaki uygulamaları ve hizmetleri kurduğumuz tüm makinelere /etc/init.dve RAC sunucularını yönlendirdik. Tüm makinelerde yum güncellemeleri yapmak istiyoruz ve sonrasında yeniden başlattık.

Bu yüzden hangi komutun daha güvenli olduğunu merak ediyordum:

reboot

veya

shutdown -r now


1
her türümüz var - redhat 4,5,6,7 olarak
dandan

6
Geri saralım: Neden güvenlik açısından bir fark olabileceğini düşünüyorsunuz?
underscore_d

2
@underscore_d: Aynı temiz kapatma adımlarını gerçekleştirmeyen birinin yalnızca "iç kullanım için" bir komut olabileceğini düşünmek mantıksız değil. Örneğin, belki bir tanesi ilk temizlik-kapatma adımlarını uyguladıktan sonra diğerini kullanır. Elbette, man sayfası bunun rebootsadece eski bir komut olduğunu ve hala geriye dönük uyumluluk için var olduğunu açıklıyor .
Peter Cordes

1
@knowhy Bir soru, farklı bir sitedeki bir sorunun kopyası olamaz ..
Insane

Yanıtlar:


50

Red Hat sistemlerinde, ve arasında işlevsel bir fark yoktur .rebootshutdown -r now

Sizin için daha kolay olanı yapın.


13
Ancak biri daha çok yazı yazmanızı sağlar ve temelde 'daha havalıdır'!
Deli

Biri süper kullanıcı erişimi gerektirir, diğeri X oturumundan herhangi bir kullanıcı (kısıtlamadıkça) tarafından yürütülebilir.
Burhan Khalid,

2
@BurhanKhalid Eğer sunucularda X oturumlarına giriş yapan rastgele kişileriniz varsa, iki komuttan hangisinin “daha ​​güvenli” olduğunu düşünmekten daha büyük sorunlarınız olabilir.
bir CVn

1
Debian üzerinde En azından, (ı kolayca ı Red Hat bilmem kabul ediyorum, ama edeceğiz olsa Janne Pikkarainen cevabı benzer fakat farklı olabilir anlaşılacağı) halt, rebootve poweroffMikhail T. açıklandığı gibi, bir neden mesaj, ne de bir zaman kabul etmiyoruz . Bir aracın bir başkasının "işlevsel bir fark" olmasına izin vermediği bir şeyi yapabileceğini düşünüyorum.
bir CVn

87

Kapatma tercih edilir çünkü şiddetli eylemin nedenini belirtmenize izin verir - her zaman yapmanız gereken bir şey. Mesaj, gelecek nesillerin kayıtlarına kaydedilecektir. Örneğin:

shutdown -r now 'Kernel upgrade requires reboot'

Zamanlanmış bir yeniden başlatma da gerçekleştirebilirsiniz - nowyeniden başlatma zamanı dışında bir şey belirterek :

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

O zaman kullanıcılarınız dışarı çıkmak için periyodik hatırlatıcılar alacaklar - bu süreç daha düzenli ve profesyonel olacaktır.


13

Bir göz atarsanız, RHEL 7'de her ikisi de /sbin/shutdownve /sbin/rebootaslında sadece systemd'in systemctlkomutuna benziyorlar . Yani, ne istersen onu kullan. Daha önce de belirtildiği gibi işlevsel bir fark yoktur, henüz sistemd kullanmayan daha önceki RHEL sürümlerinde bile yoktur.


12
Çok zorlayıcı bu argümanı bulmuyorum: Bu aşikardır /sbin/shutdownve /sbin/rebootdo not her durumda aynı davranırlar (özellikle: /sbin/shutdown! Varsayılan olarak değil yeniden başlatma yapar), daha sonra, aynı yürütülebilir sembolik olarak konum eğer öyleyse bu yürütülebilir zorunluluk onu incelemek ARGV[0]ve davranışını buna göre ayarlamak. Bu kesinlikle kasıtsız farklılıklar riskini azaltırken, OP'nin bilmek isteyebileceği kasıtlı bir işlevsel farklılığın bulunmadığına dair çarpıcı bir kanıt değildir .
ruakh

3
Bir sembolik bağlantının varsayımlara eşittir, özellikle de farklı isimler varsa, buna eşdeğer olduğu anlamına gelir.
mckenzm

ruakh haklıdır - bir an için düşünün, birbiriyle bağlantılı olmasına rağmen reboot, systemctlörneğin reboot status whatever.serviceikincisiyle olduğu gibi kullanamazsınız, değil mi?
Grawity

9

Kullanımı rebootdaha güvenlidir.

rebootNiyetinizi kullanmak açıktır ve shutdown -t nowsınırlı bir kontrolle uzak bir sunucuda kullanıyorsanız, bunun baş ağrısına yol açabilecek başka bir şey için yanlış yazması mümkün değildir .


2
IMHO cevap vermedi. Çok sık olarak, niyetleri netleştirmenin ne kadar önemli olduğunu ve uzun vadede kelimelerin ne kadar zaman kazanıp küfrettiğini unutuyoruz!
RoughTomato

1

Modern RHEL için, burada özetlendiği şekilde systemctl komutunu kullanmanız önerilir : [en son] RHEL dağıtımları, poweroff / reboot vermek için yeni systemctl komutunu kullanmalıdır. Yeniden başlatma ve kapatma sayfalarında belirtildiği gibi "yalnızca uyumluluk için geçerli olan eski bir komuttur".

Ancak, birçok farklı dağıtım veya çeşitli bağların dağılımlarını kullanırsanız, belki de buna bağlı kalın shutdown -r now 'reason for shutdown'.

rebootKullanmanın asıl nedeni, shutdown -ruzak bir makinede kullanırken -r eklemeyi unutmama riskinden kaçınmaktır; bu, kolayca tekrar giriş yapamama ve bilgisayarı yeniden başlatmak için uzak yönetici kullanmanız gerekebilir. makinesi.


0

Eski sistemler kesinlikle shutdownve arasında bir ayrım yaptı reboot. İkincisi hizmetleri kapatmaz veya mutlaka disk arabelleklerini senkronize eder. Heterojen ortamlarda - veya gelecekte diğer uygulamalarla karşılaşıldığında tehlikeli olabilecek emsallerden kaçınmak için - shutdownalışkanlığa girmenin değeri var .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.