Tüm kök işlemleri öldürdüğünüzde bir sunucu üzerinde ne gibi bir etkisi var?


9

Başlamak istediğim kök olarak giriş yapan başka geliştiriciler de vardı.

Ben de yayınladım

pkill -KILL -u root

Sonra fark ettim ki muhtemelen her türlü kök süreci öldürdüm.

Sistemime zarar verdim mi? Şimdi SSH ile ulaşamıyorum.

GÜNCELLEME: Web sunucusu hala çalışıyor. Ama şimdi SSH ile bağlanamıyorum. Ne yaptığım hakkında hiçbir fikrim yok.


1
Neredeyse kesinlikle yeniden başlatmanız gerekecek. Yapabiliyorsanız, sadece fişi çekmek yerine ACPI kapatma sinyali gönderin.
Skyhawk

1
Iain, IME tamamen doğru değil. Ayrıcalıklı bağlantı noktalarına bağlanmak için kök olarak başlamalıdırlar, ancak ayrıcalık ayırma için yapılandırılmamış herhangi bir kullanıcının yapılandırdığı tüm süreçleri döndürürler. Bununla birlikte, apache durumunda, hala hepsinin başında oturan tek bir kök sahipli süreç vardır. Ama ben size katılıyorum gerçek web sunumu yapan tüm süreçlerin kök ait değildir.
MadHatter

5
Hata yapmak öğrenmenin en iyi yoludur . Lütfen basit bir hata yapmayın çünkü birisi kötü bir hata yaptı. Bu soru tartışmalıdır, ancak kapatılmamalıdır. Bunun yerine, sorunun ardındaki düşünceyi daha derinden okumanıza ve açıklamam için size meydan okuyorum: Tüm kök süreçleri öldürdüğümde ne olur? Ev sahibi neden hala yaşıyor? SSHD neden istekleri karşılayamıyor ancak web sunucusu sunabiliyor? Web sunucusunun canlı olması nasıl mümkün olabilir? Bu tür sorulara iyi bir kanonik cevap olduğunu görmüyoruz. Yanıtlar Unix'in nasıl çalıştığı hakkında değerli açıklamalar sağlayabilir.
Stefan Lasiewski

2
Stefan'ı, kafanızı ve kalbinizi kullandığınız ve diğerleri gibi aşağı iniş düğmesine basmadığınız için teşekkür ederiz. Hiç kimse yığın değiştirilme korkusundan dolayı yığın değiş tokuş sitelerinde yaptıkları hatalar hakkında sorular yayınlamazsa, hiç kimse onlardan öğrenemez. İnsanlara sorumla ilgili yardım ediyorum ve bunun için cezalandırılmamalıyım.
Buttle Butkus

1
Soruyu yukarı oyladım çünkü gülmek için iyi, suç yok. Mesaj gönderirken birinin deliğe düştüğünü gösteren bir video izlemek gibi.
UncaAlby

Yanıtlar:


15

Hızlı bir cevap, sshd'yi öldürdüğünüz (ve lord başka ne bildiğini) ve SSH kullanarak sisteme tekrar giriş yapamayacağınızdır. Sisteme erişim elde etmek için başka bir yönteminiz yoksa (böyle bir uzak konsol, IPMI, vb.), SSH hizmetini ve diğer hizmetleri geri yükleyecek sistemi yeniden başlatmanız gerekir.

Umarım kutuya fiziksel erişiminiz vardır, bu durumda muhtemelen sadece güç düğmesine basmanız gerekir. Birçok süreci öldürdüğünüzü ve bazı yolsuzluklara hazırlıklı olduğunuzu unutmayın. Linux bir sistem çökmesinden kurtulmak için tasarlanmıştır ve esasen bir 'manuel' çökmeyi tetiklediniz. Çoğu şey yeniden başlattıktan sonra iyi bir şekilde iyileşmelidir. Günlük dosyalarında her türlü ilginç hata iletisine sahip olabilirsiniz.


Uzun cevap:

Bu harika bir düşünce deneyi ve iyi bir iş görüşmesi sorusudur. "X yaptıysanız ne olur ..." Bu, kendi özel sanal makinenizde denemek için eğlenceli bir şey, ancak asla gerçek bir kutuda yapılmamalıdır. Herkes hata yapar. Hatırlayın ve hatanızdan ders alın. Hata yapmak öğrenmenin en iyi yoludur. Üretimde hata yapmak, kariyerinizde zaman zaman gerçekleşecek acı verici bir derstir.

pkill -KILL -u kökü

Bu komut, root'a kill -9ait tüm işlemlere bir 'SIGKILL' gönderir (örn . KILL, SIGKILL için bir takma addır). Bir sistem üzerinde yapmak çok kötü bir şey. kill -9son çare haricinde kaçınılmalıdır.

Komutunuz kök tarafından sahip olunan tüm süreçleri agresif bir şekilde öldürdü, süreçler hemen öldürüldü ve temizlik şansı verilmedi. Ne öldürdüğünüzü anlamak için, sağlıklı bir Linux kutusuna giriş yapın ve bunlardan biri gibi bir komut kullanarak kökün sahip olduğu işlemleri listeleyin. Bu komutları çalıştırmak için genellikle root olmanız gerekmez:

$ pgrep -u root -l
$ ps aux | grep root

Yeni süreçleri ortaya çıkaran Init'i (PID # 1) öldürmüş olabilirsiniz. Sisteminiz yeni işlemler oluşturamayabilir. Bu nedenle, şimdilik çalışmaya devam edebilir, ancak hastadır ve mümkün olan en kısa sürede onarılması gerekir. Zaman geçtikçe, sistem gittikçe daha hasta olacak. Ne kadar beklersen o kadar kötüleşir.

GÜNCELLEME: Web sunucusu hala çalışıyor. Ama şimdi SSH ile bağlanamıyorum. Ne yaptığım hakkında hiçbir fikrim yok.

Apache kullandığınızı tahmin ediyorum. Görünüşe göre web sunucusunun alt süreçleri hala 'root' kullanıcısına ait olmadığından çalışıyor. Ancak, üst web sunucusu işlemi normalde root'a aittir ve siz onu öldürdünüz. Sonuç olarak, yeni alt süreçler ortaya çıkmayacaktır. Bu bir süre için iyi olacaktır, çünkü muhtemelen istekleri yerine getirmek için yeterli alt işleminiz vardır ve genellikle bu alt işlemler öldürülünceye veya çökene kadar devam eder. Yine, en hızlı düzeltme makineyi yeniden başlatmaktır.


Fiziksel erişimim yok ama bir şey bulacağım. Apache'nin hala çalıştığını görmek beni çok şaşırttı. Böylece makine köksüz iyi çalışıyor. Not: Soruyu düşürdüyseniz, başlığı geliştirdim.
Buttle Butkus

1
@ButtleButkus Soruyu küçümsemedim. Soruyu cevaplamaya başladım ve sonra işlerin neden böyle çalıştığına oldukça ilgi duydum.
Stefan Lasiewski

1
Stefan, cevabın için teşekkürler. Bu mantıklı geldiği için baştan beri benim cevapladığım tek cevap. Yaklaşık 10 dakika içinde sistemi yeniden başlattım ve o zamandan beri her şey harika çalışıyor gibi görünüyor.
Buttle Butkus

4

Büyük olasılıkla üzerindeki her kritik hizmeti öldürdüğünüz için sisteminizi yeniden başlatmanız gerekecektir. Bunu nasıl yapacağınız, hangi araçlara sahip olduğunuza veya veri merkezine hangi ulaşım araçlarına sahip olduğunuza bağlıdır.


Aslında tüm kritik süreçleri öldürdüğüm gibi görünmüyor. Aksi halde, web sunucusu neden hala mükemmel web sayfaları sunmaya devam ediyordu?
Buttle Butkus

@ButtleButkus: Web sunucunuz kök olarak çalışmaz.
user9517

@lain Tek bir "kritik" hizmet bile öldürüldüyse, o zaman tüm sunucunun çökmesine neden olacağını düşünüyorum. Komut aslında tek bir kritik hizmeti öldürmemiş gibi görünüyor. Yine de uygun bir servisi öldürdü: sshd.
Buttle Butkus

2
Kritik bir hizmetin öldürülmesi, makinenin hemen düşeceği anlamına gelmez. Örneğin, fan kontrol arka plan programımın kritik olduğunu düşünürdüm - işlemci kullanımı arttığında, fanın daha fazla dönmesini istiyorum. Hizmeti öldürebilir ve günlerce düşük cpu kullanımına sahip olabilirim, sonra aniden 1000 kişi siteme erişti ve cpu'm ateş yaktı. Ve hasar vermenin daha az
göze çarpan

3

Çekirdek çalıştığı için sistem çalışıyor. SSD'ye erişemezsiniz çünkü cini öldürdünüz. Muhtemelen init de sonlandırılmıştır, yani yeni süreçler yaratamazsınız. Bu nedenle, yeni apache bağlantıları kurulamayabilir (yapılandırma parametreleri uygulandı;)).

Çekirdek iş parçacıklarına sinyal gönderemezsiniz, bu yüzden sistem çalışıyor ancak kök sahip olunan hizmetler sonlandırıldı ve normal bir yeniden diriliş için yeniden başlatmanız gerekiyor.


İlginç ayrıntılar için teşekkürler. Sana bir oy verdim, ama Stefan'a onay işareti veriyorum.
Buttle Butkus
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.