Süreçler ve systemd: ps, top, systemctl
Süreçleri izlemek, sinyaller, arka plan işleri ve servis yönetimi.
Seviye 201 · 18 ders · 15 pratik lab
Dersler
Süreçler
- Süreçleri listelemek: ps ve PID: ps ile çalışan süreçleri ve süreç numaralarını (PID) listelemeyi, hangi sürecin kime ait olduğunu okumayı ve beklenmeyen bir süreci fark etmeyi öğrenirsin.
- top ile canlı izleme: top ile sistemdeki süreçleri canlı izlemeyi, CPU ve bellek tüketenleri sıralamayı ve tabloyu doğru okumayı öğrenirsin.
- Sinyaller: kill, pkill, SIGTERM ve SIGKILL: Süreçlere sinyal göndermeyi, SIGTERM ile nazikçe, SIGKILL ile zorla durdurmanın farkını ve hangisini ne zaman seçeceğini öğrenirsin.
- Ön plan, arka plan ve iş denetimi: Bir komutu ön planda, arka planda ya da duraklatılmış çalıştırmayı ve kabuktaki işleri yönetmeyi öğrenirsin.
- Öncelik: nice ve renice: nice ve renice ile süreçlerin öncelik değerini değiştirmeyi ve ağır bir işin diğer işleri yavaşlatmasını nasıl önleyeceğini öğrenirsin.
- Oturum kapansa da sürmeli: nohup, tmux ve screen: nohup, tmux ve screen ile uzun süren işi başka bir terminalden sürdürebilir ya da bağlantı kopsa bile çalışır halde tutabilirsin.
- Başıboş bir süreci teşhis etmek: CPU veya belleği tüketen başıboş bir süreci adım adım bulmayı, nedenini araştırmayı ve sistemi bozmadan durdurmayı öğrenirsin.
- Kısa görev: zombi süreçlerin ebeveynini bul ve temizle
Servisler
- systemctl ile servisleri yönetmek: systemctl ile servislerin durumunu görmeyi, başlatıp durdurmayı ve bir servisin neden çalışmadığına dair ilk ipuçlarını okumayı öğrenirsin.
- Açılışta başlatma, reload ve restart farkı: Servisi açılışta otomatik başlatmayı ve reload ile restart arasındaki farkı, yani kesinti olup olmayacağını anlayarak doğru seçimi yapmayı öğrenirsin.
- journalctl ile servis günlükleri: journalctl ile bir servisin günlüklerini süzmeyi, belirli bir zaman aralığına bakmayı ve hata mesajlarını bulmayı öğrenirsin.
- Kendi systemd servis birimini yazmak: Bir betiği systemd servisi olarak tanımlayıp açılışta başlatabilir, çökerse otomatik yeniden başlatmasını ayarlayabileceksin.
- Servis bağımlılıkları: After, Requires ve Wants
- systemd zamanlayıcıları: cron’a alternatif: Bir servis ve zamanlayıcı birimi yazıp işi belirli aralıklarla çalıştırabilir, sonucunu journalctl ile izleyebileceksin.
- Kısa görev: küçük bir uygulamayı servis olarak çalıştır, çökünce yeniden başlasın
Kaynaklar ve kapanış
- Sistem kaynaklarını raporlamak: bellek, disk, CPU: Bellek, disk ve CPU kullanımını bir araya getirip kısa ve okunur bir sistem durum raporu çıkarmayı öğrenirsin.
- /proc ile bir sürecin içine bakmak: cmdline, environ ve fd
- Bitirme görevi: bozuk servisi kurtar: Hayali bir şirketin lab sunucusunda çalışmayan bir servisi günlüklerden nedenini bularak onarır ve yaptıklarını kısa bir notla belgelersin.
Pratik lablar
- Portu dinleyen süreci ve sahibini bul: 8080 portunu dinleyen sürecin PID'sini, sahibini ve tam komut satırını bul ve cevap olarak gir.
- Süreç ağacından sorumlu üst süreci bul: Sürekli yeniden doğan işçi süreçlerin üst sürecini ağaç görünümüyle bul ve hangi servise ait olduğunu belirle.
- Şüpheli süreci /proc üzerinden incele: Adı sistem servisine benzeyen sürecin gerçek ikili dosyasını, çalışma dizinini, ortamını ve açık dosyalarını /proc'tan çıkarıp raporla.
- Süreci doğru sinyalle düzgün kapat: Yazma işlemi süren bir süreci veri kaybı olmadan kapat ve çıkışta geçici dosyasını temizlediğini doğrula.
- Zombi süreçlerin kaynağını bul ve temizle: Süreç tablosunda biriken zombilerin üst sürecini bul, doğru müdahaleyle temizle ve yeniden oluşmadığını göster.
- Toplu işi etkileşimli oturumları yavaşlatmayacak biçimde çalıştır: Uzun rapor işini düşük işlemci ve G/Ç önceliğiyle, oturum kapansa da sürecek biçimde başlat ve önceliğini çalışırken değiştir.
- Başarısız servislerin nedenini durum çıktısından oku: Başarısız durumdaki birimleri listele ve her birinin çıkış kodu ile son hata satırını yaz.
- Servisi açılışta başlat ve kesintisiz yeniden yükle: Elle başlatılan servisi açılışa ekle, yapılandırma değişikliğini yeniden başlatmadan uygula ve PID'nin değişmediğini göster.
- Başlamayan servisin maske ve çakışma sorununu çöz: Maskelenmiş ve aynı portu kullanan başka bir servisle çakışan birimi ayağa kaldır; kalıcı çözümü açılıştan sonra da doğrula.
- Betiği systemd servisi olarak çalıştır: Küçük bir betik için servis birimi yaz, etkinleştir ve günlükte çıktısını göster.
- Çöken uygulamayı kendiliğinden yeniden başlat: Ara sıra çöken uygulamanın birimine yeniden başlatma kuralı ve bekleme süresi ekle; sonsuz döngüye karşı sınır koy.
- Bağımlılığı olan zamanlanmış servis kur: Yalnızca veritabanı çalışırken ve ağ hazırken çalışan saatlik rapor servisini zamanlayıcısıyla birlikte yaz ve sıralamayı doğrula.
- Belleği en çok kullanan süreçleri raporla: Kullanılabilir belleği doğru sütundan oku ve en çok bellek tüketen beş süreci listele.
- Kontrolden çıkan süreci teşhis et: İşlemciyi tüketen sürecin hangi servise ait olduğunu, ne zamandır çalıştığını ve ne yaptığını belirleyip servisi düzgün durdur.
- Bozulan servisi uçtan uca kurtar: Ayçiçeği Gıda'nın sipariş servisinde dosya izni, eksik dizin ve hatalı birim satırından oluşan üç sorunu günlükten bulup gider.
Kurs hakkında
Süreçleri izlemek, sinyaller, arka plan işleri ve servis yönetimi.
Ne öğreneceksin
- Süreçler
- Servisler
- Kaynaklar ve kapanış
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.