CentOS'u zarif bir şekilde yeniden başlatmanın en iyi yolu?


82

Ben her zaman komutu kullandım:

shutdown -r now

Ancak, bazen bu MySQL sorunlarına neden olur.

CentOS'u yeniden başlatmanın en zarif yolu nedir?

Gördüm:

reboot

ve

halt

Makineyi nasıl yavaşça yeniden başlatabilirim?


3
rebootaslında bir takma addır shutdown -r... yani ... evet.
Nathan C,

Gönderim sorunuzu cevapladı mı, yoksa başka bir şey bilmeniz mi gerekiyor?
Joffrey

Henüz buraya yorum yapamıyorum, ancak buraya yeniden başlatma hakkında bir uyarı vermek istedim. Örnek Amazon EC2'de ise, yeniden başlatma - h şimdi örneği tuğlalar, bu yüzden asla bunu yapmayın. Bunun yerine, kapatmanız veya yeniden başlatmanız gerekiyorsa, kabuğu değil Amazon'un çevrimiçi arayüzü aracılığıyla yapın. Örneğinizi örterseniz, yeni örnekle birlikte gelen ilk birimi ayırmadan, durdurabilir, birimi çıkarabilir, ayrı bir örnek oluşturabilir ve birimi ekleyebilirsiniz. O zaman yeni örneğe ssh eklemeniz, eski birimi bağlamanız ve dosyalarınızı çıkarmanız gerekir.
kloddant

Aslında, çalıştırmadan sync: sync;önce çalıştırmak istediğiniz, shutdown -rböylece tüm dosya g / Ç eşitlenir. Bunun da sorunu mysql
çözeceğinden şüpheliyim

Yanıtlar:


93

Bu komutlardan başka bir şey kullanarak sunucunuzu yeniden başlatmanın daha iyi bir yolu yoktur.

  • kapatma , sisteminizi durdurmanın en yaygın yoludur. Argümanı -rve belirli bir zamanı (veya ' now') eklemek, kapatma sırasından sonra onu durdurmak yerine sisteminizi yeniden başlatır.
  • Yeniden başlatma , bazı sabit disk bakımı yapan bir sarmalayıcı yuvarlak kapatma işlemidir (senkronizasyon ve / veya bekleme moduna geçirme ve gerçekten alakalı değil).
  • Çalışma seviyesi 0 veya 6'da değilse yeni sürümler reboot(> 2.74) başlatılır shutdown.
  • Birçok init betiği utmp giriş yapmak için dur çağırır .

Modern dağıtımlar, kullandığınız komuttan bağımsız olarak tüm görevleri yerine getirecektir. Temel olarak hepsi SysV (CentOS <7) veya systemd (CentOS> = 7) betiklerinin kapanma zamanlarını başlatır (okuma kolaylığı için onları init betikleri olarak adlandırırım).

İnit komut dosyalarını kullanarak adım adım kapatma, genellikle 'S' koşulu altında kayıtlı tüm hizmetlerinizi durdurun . Bireysel init komut dosyalarının, CentOS'taki MySQL init komut dosyası gibi bir zaman aşımı süresi olabilir. Durdurma argümanı verildiğinde ve arka plan programı yeterli bir süre içinde kapanmayacaksa, komut dosyası durur ve hata verir. Kapatma işlemi hiçbir şey yanlış değil sanki devam eder, sadece biraz daha uzun sürüyor ve muhtemelen bir uyarı yazdırıyor. Sonunda, tüm init betikleri çalıştırıldığında kaçınılmaz olan olur: hala çalışan tüm işlemler bir SIGTERM sinyal alacaktır ve birkaç saniye sonra (2 veya 5) a SIGKILL. Bu, sisteminizi gerçekten yeniden başlatmak veya kapatmak için bir ACPI araması yapılmadan önce gerisini temizler .

Bunun bir istisnası, seçeneğin bulunduğu rebootkomutu kullanmaktır -f, bu init betiklerini çalıştırmayı atlar ve sistemi doğrudan yeniden başlatır.

Endişelerinizin kök nedenini düzelterek daha iyi olacaksınız: MySQL düzgün bir şekilde kapanmıyor.

Genellikle bu, servisten güvenli bir şekilde çıkmadan önce yapılması gereken büyük çalışma yükünden kaynaklanmaktadır. Bir keresinde çıkmak için bir saatten fazla süren +300.000 tabloyla bir MySQL örneğim vardı. Büyük tamponlar ve seyrek G / Ç kullanılabilirliği kullanan sistemler için de benzer sorunlar bulunabilir.


31

Centos 6.x'in zarif bir şekilde kapatılması, komutu root olarak kullanarak yapılmalıdır:

shutdown -h now

Bu, sunucuyu dikkatlice kapatmadan önce çalışan tüm hizmetleri durdurmaya çalışır.

Bu komutu kullanmak da mySQL soket sorunlarını önler.

Benzer şekilde, zarif bir yeniden başlatma için:

reboot -h now

Benzer bir soru hakkında önceki bir cevabı buradan okuyabilirsiniz:

https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket


7
Sanırım demek istiyorsun shutdown -r now, belki de sadece reboot. rebootKomutu bir yok -hseçeneği.
Michael Hampton

1
Merhaba Michael, Centos 6.x gerçekten yeniden başlatmadan önce hizmetleri durdurma seçeneğine sahip. "shutdown -h now" zarif bir kapatmadır ve "yeniden başlat - h now" zarif bir yeniden başlatmadır. Centos sunucunuzda deneyin ...
GeckoSEO

1
Ah? Peki bu -hseçenek ne yapar ? Erkek sayfasında değil.
Michael Hampton

2
Gerçekten mi? Bunun için bazı belgeleriniz var mı? Çünkü, ilk önce, bu olmadanreboot yapar . İkincisi, söyleyebileceğim kadarıyla hiçbir şekilde belgelenmemiş. -h
Michael Hampton

2
Bağladığın doktor tam olarak sana söylediklerimi söylüyor! seçeneği rebootyok -h, shutdownöyle.
Michael Hampton

2

Son kullanıcılara ve müşterilere uzaktan talimatlar verirken poweroff, sistemi kapatmak ve kapatmak için kullanmalarını söylerim .

Sıcak bir yeniden başlatma istiyorlarsa, rebootkomutu kullanmalarını öneririm .

Sanırım yayınlamanın bunuCtrl-Alt-Delete da başardığını söyleyebilirim ;)


Bu cevabı kabul etmiyorum. yeniden başlatma ve kapatma (Ctrl-Alt-Delete) zordur ve mySQL kullananlar gibi bazı ortamlarda, yeni bir soket oluşturmayı veya yeni bir soketi yeniden oluşturmadan önce mevcut soketi silmeyi / taşımayı gerektiren bir sokete "kilitlenmeye" neden olabilir bir.
GeckoSEO

1
@GeckoSEO Ctrl-Alt-Delete'in Linux sunucularında etkinleştirilmesine izin verme tehlikesini ifade eden çok karmaşık bir öneriydi .
ewwhite

Öte yandan cevabım karmaşık değildi, sadece bu soruyu çözmeye çalışanların cevaplarını netleştirmeye çalışıyordum. Lütfen önceki cevabımı görün, yardımcı olur umarım.
GeckoSEO

2

'İnit 6' komutunu kullanıyorum.

init 6, init işlemine, tüm başlatılan işlemlerin / ödemelerin, init dosyalarında (başlattıkları ters sırayla) yazıldığı gibi kapatılmasını ve son olarak makineyi yeniden başlatmak için kapatma -r now komutunu çağırmasını söyler.

Bu soru hakkında daha fazla bilgi bulunabilir .


0

Bu cevabı beğenmeyeceğinize dair bir fikrim var, ancak bu cevap diğerlerinin hiçbirinin düşünmediği bir fikir içeriyor. . . Sen yaz:

Ben her zaman komutu kullandım:

kapanma -r şimdi

Ancak, bazen bu MySQL sorunlarına neden olur.

Buradaki sorun kapatma yönteminiz DEĞİL, kapatma işlemini düzgün bir şekilde yerine getiremeyen bir yazılım; MySQL.

Bunu gerçekten ele alabileceğiniz tek yol MySql (PostgreSql harika bir alternatiftir) VEYA İLK MySql'i bir bebek gibi kodlar.

... 26 yıldan fazla bir süredir veritabanı sistemlerinde uzmanlaşmış bir kişi olarak, çok kısa bir süre önce MySql’in, veritabanı sistemlerinin en önemli yönleriyle yetkinlik konusunda bir araya gelerek harekete geçmeye başladığını söyleyebilirim. için - veri güvenliği / bütünlüğü. Daha önce, bu hususlara daha az dikkat etmişler ve performansa daha fazla dikkat etmişlerdi. Peki, eğer veri kaybederseniz, iyi performansın faydası nedir? SOME uygulamalarında, örneğin Netflix video akışı izlediğiniz noktadaki video kaydı, mutlak doğruluk özellikle önemli olmayabilir - belki de müşterileriniz bir videoyu bir hata sonrasında biraz yedekleyerek LIKE. Ancak, bir bankacılık sisteminde epik boyutlarda bir felakettir. Sadece veri sahibi onlar için neyin doğru olduğunu bilir.


1
Mysql, sistemin yeniden başlatılması veya kapatılması ile ilgili sorunlar nedeniyle mi değiştirildi? Ve çözümün son kısmı, soruyu yapan kişinin problemini çözmek için hiçbir şey yapmaz
ftrujillo

Bu cevap, kaynaklar veya referanslar olmadan MySQL'e karşı önyargılıdır. Bu soru bağlamında faydalı değil; çıkması çok uzun süren herhangi bir yazılım, yeniden başlatma sırasında sorunlara neden olabilir (özellikle sistem ve agresif zaman aşımlarında).
Harald
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.