
Linux Süreç Yönetimi: ps, top, kill ve systemctl Komutları
Linux'ta çalışan süreçleri nasıl yönetirsiniz? ps ve top ile süreç izleme, kill ile süreci sonlandırma, systemctl ile servis yönetimi rehberi.
Linux Süreç Yönetimi: ps, top, kill ve systemctl Komutları
Linux'ta her çalışan uygulama bir "süreç" (process) olarak yönetilir. Sistem yöneticileri için süreçleri izlemek, performans sorunlarını tespit etmek ve askıya alınmış servisleri yeniden başlatmak kritik becerilerdir. Bu rehberde Linux süreç yönetiminin temel komutlarını ele alıyoruz.
Süreç Kavramları
PID (Process ID)
Her süreç benzersiz bir sayısal kimliğe sahiptir:
- PID 1: systemd/init (tüm süreçlerin ebeveyni)
- PID > 1: Uygulama süreçleri
Süreç Durumları
- R (Running): Aktif çalışıyor
- S (Sleeping): I/O bekliyor
- D (Disk Sleep): Disk I/O bekliyor (uninterruptible)
- Z (Zombie): Bitmiş ama ebeveyn tarafından toplanmamış
- T (Stopped): Durdurulmuş
Ön Plan ve Arka Plan
- Ön plan (foreground): Terminal'de aktif çalışan süreç
- Arka plan (background): & ile başlatılan süreç
komut & # Arka planda başlat
Ctrl+Z # Ön planı arka plana gönder (durdur)
bg # Duran görevi arka planda devam ettir
fg # Arka plan görevini ön plana getir
jobs # Arka plan görevlerini listele
ps Komutu - Süreç Listesi
ps (Process Status), çalışan süreçlerin anlık görüntüsünü verir.
Temel ps Kullanımı
ps # Mevcut terminal süreçleri
ps aux # Tüm kullanıcıların tüm süreçleri
ps aux | head -20 # İlk 20 süreç
ps aux çıktısı sütunları:
- USER: Sahip kullanıcı
- PID: Süreç ID
- %CPU: CPU kullanımı
- %MEM: Bellek kullanımı
- VSZ: Sanal bellek (KB)
- RSS: Fiziksel bellek (KB)
- STAT: Süreç durumu
- START: Başlangıç zamanı
- TIME: CPU süresi
- COMMAND: Komut
Filtreleme
ps aux | grep apache # Apache süreçleri
ps aux | grep php # PHP-FPM süreçleri
ps -p 1234 # PID 1234'ün detayı
ps -u www-data # www-data kullanıcısının süreçleri
Ağaç Görünümü
ps auxf # Hiyerarşik görünüm
pstree # Ağaç formatı
pstree -p # PID ile birlikte
top Komutu - Canlı Sistem Monitörü
top, sistem kaynaklarını gerçek zamanlı olarak izler.
top
top İçindeki Kısayollar
- q: Çıkış
- P: CPU kullanımına göre sırala
- M: Bellek kullanımına göre sırala
- k: Süreç sonlandır (PID sor)
- 1: CPU çekirdeklerini ayrı göster
- u: Belirli kullanıcı
- h: Yardım
htop (Gelişmiş top)
# Kurulum (yüklü değilse)
yum install htop # CentOS/AlmaLinux
apt install htop # Debian/Ubuntu
htop
htop özellikleri:
- Renkli arayüz
- Fare desteği
- Scroll desteği
- F2 ile yapılandırma
free - Bellek Kullanımı
free -h # İnsan okunabilir format (MB/GB)
free -m # Megabyte
Çıktı:
- total: Toplam RAM
- used: Kullanılan
- free: Boş
- buff/cache: Önbellek (sistem tarafından kullanılan ama serbest bırakılabilir)
- available: Gerçekten kullanılabilir alan
kill Komutu - Süreç Sonlandırma
Signal Türleri
kill -l # Tüm sinyalleri listele
Önemli sinyaller:
- SIGTERM (15): Nazik sonlandırma (varsayılan)
- SIGKILL (9): Zorla sonlandırma
- SIGHUP (1): Yeniden yapılandırma (konfig yenile)
- SIGSTOP (19): Durdur
- SIGCONT (18): Devam ettir
kill Kullanımı
kill PID # Nazik sonlandırma (SIGTERM)
kill -9 PID # Zorla sonlandırma (SIGKILL)
kill -1 PID # Yeniden yükle (SIGHUP)
# Birden fazla süreç
kill 1234 5678
# Süreç adına göre
killall nginx # nginx adlı tüm süreçleri sonlandır
pkill apache2 # apache2 süreçlerini sonlandır
Askıya Alınmış Süreci Zorla Sonlandırma
# PID bul
ps aux | grep "donmus-uygulama"
# Önce nazik dene
kill 12345
# Hala çalışıyorsa zorla
kill -9 12345
systemctl - Servis Yönetimi (systemd)
Modern Linux dağıtımları (CentOS 7+, Ubuntu 16+, AlmaLinux) systemd kullanır.
Temel Servis İşlemleri
systemctl start nginx # Başlat
systemctl stop nginx # Durdur
systemctl restart nginx # Yeniden başlat
systemctl reload nginx # Konfig yenile (servis durdurmadan)
systemctl status nginx # Durum göster
Otomatik Başlatma
systemctl enable nginx # Sistem başlangıcında otomatik başlat
systemctl disable nginx # Otomatik başlatmayı kaldır
systemctl is-enabled nginx # Durum kontrol
Tüm Servisleri Listele
systemctl list-units --type=service
systemctl list-units --type=service --state=running # Sadece çalışanlar
systemctl list-units --type=service --state=failed # Başarısız olanlar
Servis Logları
journalctl -u nginx # nginx logları
journalctl -u nginx -n 50 # Son 50 satır
journalctl -u nginx --since today # Bugünkü loglar
journalctl -u nginx -f # Canlı log takibi
Web Sunucu Komutları
# Apache
systemctl status httpd # veya apache2
systemctl restart httpd
# Nginx
systemctl status nginx
nginx -t # Konfig testi
# PHP-FPM
systemctl restart php-fpm
systemctl restart php81-php-fpm # PHP 8.1 için
Sistem Kaynaklarını İzleme
# Disk I/O
iostat -x 2 5 # 2 saniyede bir, 5 kez
# Ağ trafiği
iftop # Canlı ağ trafiği (yüklü ise)
ss -tuln # Açık portlar ve bağlantılar
# Sistem yükü
uptime # Load average göster
vmstat 1 10 # Sanal bellek istatistikleri
Büyükweb VDS Sunucu Yönetimi
Büyükweb VDS sunucular ile tam root erişimi alarak tüm sistem süreçlerini yönetebilirsiniz. AlmaLinux 8/9 ve Ubuntu 22.04 seçenekleri mevcuttur.
Sonuç
ps, top, kill ve systemctl komutları, Linux sunucu yönetiminin temel araçlarıdır. Performans sorunlarında top ile kaynakları izleyin, askıya alınmış uygulamaları kill ile sonlandırın ve systemctl ile sistem servislerini yönetin. Bu komutları öğrenmek, sunucu sorunlarını hızla teşhis etmenizi sağlar.
Pratik Linux Komutlari
Dosya Yonetimi
find ile kriterlere gore arama yapin. du -sh ile dizin boyutu, ncdu ile interaktif analiz. locate ile hizli dosya bulma. rsync ile dosya senkronizasyonu.
Surec Yonetimi
ps aux ile surecleri goruntuleyin. kill -9 ile sonlandirin. nohup ile arka planda calistirin. screen/tmux ile coklu terminal. systemctl ile servis yonetimi.
Metin Isleme
grep -r ile arama, sed ile toplu degisiklik, awk ile sutun cikarma. jq ile JSON isleme. tail -f ile canli log takibi. wc ile satir/kelime sayma.
Ag Komutlari
ss -tulpn ile portlar, curl ile HTTP istekleri, mtr ile traceroute, tcpdump ile trafik yakalama. dig ile DNS sorgulari. wget ile dosya indirme.
Zamanlama
crontab -e ile zamanlanmis gorevler. Yedekleme, temizlik otomasyonu. systemd timer ile gelismis zamanlama.
Disk Yonetimi
df -h ile kullanim, lsblk ile diskler. LVM ile esnek yonetim. RAID yapilandirmasi.
Sik Sorulan Sorular
Nereden baslamaliyim?
Temel komutlar (ls, cd, cp, mv, rm), editior (nano/vim), izinler (chmod) ve paket yonetimi (apt/dnf) ile baslayin.
Bash script nasil yazilir?
#!/bin/bash ile baslayin. Degiskenler, kosullar, donguler ogrenin. chmod +x ile calistirin.
Sonuc
Linux komut satiri sunucu yonetiminin vazgecilmez aracidir. Pratik yaparak becerilerinizi gelistirin.
En Sik Kullanilan Linux Komutlari
| Komut | Aciklama | Ornek |
|---|---|---|
| ls -la | Detayli dosya listesi | ls -la /var/www |
| grep -r | Icerik arama | grep -r "error" /var/log |
| find | Dosya bulma | find / -name "*.conf" |
| chmod | Izin degistirme | chmod 755 dosya.sh |
| chown | Sahiplik degistirme | chown www-data /var/www |
| systemctl | Servis yonetimi | systemctl restart nginx |
| journalctl | Log goruntuleme | journalctl -u nginx -f |
| df -h | Disk kullanimi | df -h / |
| free -m | Bellek kullanimi | free -m |
| ss -tulpn | Ag baglantilari | ss -tulpn |
Shell Scripting Temelleri
Bash script ile tekrarli gorevleri otomatiklestirin:
Yedekleme Scripti
Otomatik yedekleme ile veritabani ve dosyalarinizi duzenli yedekleyin. mysqldump ile veritabani, tar ile dosya arsivi olusturun.
Disk Izleme
Disk kullanimini izleyen ve esik degerini astiginda bildirim gonderen script yazin.
Log Analiz
Apache/Nginx loglarini analiz ederek en cok ziyaret edilen sayfalar ve supheli IP adresleri raporlayan script olusturun.
Etiketler:

