Bash script’leri, Linux ve UNIX tabanlı sistemlerde sistem ve süreç yönetimi için oldukça güçlü araçlardır. Bir sistem yöneticisi olarak, süreçlerin nasıl yönetileceği ve izleneceği konusunda bilgi sahibi olmak önemlidir. Bu makalede, çeşitli süreç yönetim komutları ve sistem yönetim araçları hakkında bilgi edineceğiz.

1. Süreç Yönetimi Nedir?

Süreç yönetimi, bilgisayar sistemlerinde çalışan programların ve hizmetlerin yönetimini ifade eder. Çalışan herhangi bir komut veya program, bir “süreç” olarak adlandırılır. Linux sistemlerinde bu süreçlerin kontrol edilmesi, sistem performansını artırmak, kaynakları en verimli şekilde kullanmak ve gereksiz süreçleri sonlandırmak için önemlidir.

Linux’ta Süreçlerin Yapısı

Linux işletim sistemi, her bir sürece benzersiz bir kimlik (PID – Process ID) atar. Bu PID’ler, süreci tanımlamak ve yönetmek için kullanılır. Bash script ile süreçleri izlemek, yönetmek ve gerektiğinde sonlandırmak mümkündür.

2. Süreçleri İzleme

Linux’ta sistemde çalışan süreçleri izlemek ve kontrol etmek için çeşitli komutlar kullanılır. Bu komutların bazıları, çalışan tüm süreçleri görmenizi sağlarken, bazıları ise belirli bir sürecin ayrıntılarını sunar.

ps Komutu

ps komutu, sistemde çalışan süreçleri listelemek için kullanılır. Bu komut, kullanıcılara süreçlerin durumu hakkında bilgi verir.

ps aux
  • a: Tüm kullanıcıların süreçlerini gösterir.
  • u: Süreçlerin sahiplerini ve daha ayrıntılı bilgileri gösterir.
  • x: Terminale bağlı olmayan süreçleri de dahil eder.

Bu komut, her bir sürecin PID’sini, CPU ve bellek kullanımını, çalıştırıldığı komutu ve sahibini gösterir. Özellikle bir sürecin PID’sine ihtiyacınız olduğunda bu komut oldukça kullanışlıdır.

top Komutu

top komutu, çalışan süreçlerin gerçek zamanlı olarak izlenmesine olanak tanır. Bu komut, CPU ve bellek kullanımını sürekli olarak güncelleyerek sistemin performansını analiz etmenizi sağlar.

top

top komutu, sistemde hangi süreçlerin en fazla kaynağı tükettiğini ve bu süreçlerin performans üzerindeki etkilerini görmenizi sağlar. Kullanıcı q tuşuna basarak top ekranından çıkabilir.

htop Komutu

htop, top komutuna benzer ancak daha kullanıcı dostu ve renkli bir arayüz sunar. htop kullanarak süreçleri kolayca filtreleyebilir, sonlandırabilir veya detaylarına göz atabilirsiniz. Bu aracı kullanmak için sisteminizde htop kurulu olmalıdır.

htop

3. Süreçleri Sonlandırma

Bazen sistemde çalışan belirli bir sürecin sonlandırılması gerekebilir. Bu, yüksek kaynak kullanımı veya yanlış çalışan bir uygulama durumunda gerekli olabilir.

kill Komutu

kill komutu, belirli bir süreci PID’sine göre sonlandırmak için kullanılır. İlk olarak sonlandırmak istediğiniz sürecin PID’sini bulmak için ps veya top komutunu kullanabilirsiniz.

kill PID

Eğer normal bir kill komutu süreç tarafından dikkate alınmazsa, -9 işareti ile zorla sonlandırılabilir:

kill -9 PID

Bu komut, süreci hemen sonlandırır ve çoğu durumda etkin bir şekilde sürecin çalışmasını durdurur.

killall Komutu

killall komutu, belirli bir adı taşıyan tüm süreçleri sonlandırmak için kullanılır. Bu komut, aynı anda birden fazla süreci sonlandırmak gerektiğinde oldukça kullanışlıdır.

killall process_name

Örneğin, tüm nginx süreçlerini sonlandırmak için killall nginx komutunu kullanabilirsiniz.

pkill Komutu

pkill komutu, süreçleri adlarına veya çeşitli özelliklerine göre sonlandırmak için kullanılır. Bu komut, killall komutuna benzer, ancak daha esnek bir şekilde kullanılabilir.

pkill -u username

Bu komut, belirli bir kullanıcıya ait tüm süreçleri sonlandıracaktır.

4. Arka Plan İşlemleri Yönetmek

Arka Plan İşlemi Olarak Çalıştırmak (&)

Bir komutu arka planda çalıştırmak, komutun başlatıldığı terminali kullanmaya devam edebilmenizi sağlar. Bir komutun sonuna & ekleyerek bu komutu arka planda başlatabilirsiniz.

./script.sh &

Bu komut, script.sh dosyasını arka planda çalıştırır ve terminali kullanılabilir halde tutar.

Arka Plan İşlemlerini Yönetmek (jobs, fg, bg)

  • jobs: Terminalde başlatılmış ve arka plana alınmış işlemleri listelemek için kullanılır.
jobs

fg: Arka planda çalışan bir işlemi ön plana almak için kullanılır.

fg %1

Bu komut, arka plandaki birinci işlemi (örneğin %1) ön plana getirir.

bg: Durdurulmuş bir işlemi arka planda çalıştırmak için kullanılır.

bg %1
  • Bu komut, durdurulmuş (CTRL + Z ile durdurulmuş) bir işlemi arka planda çalıştırmaya devam ettirir.

nohup Komutu

nohup komutu, bir komutun terminalden bağımsız olarak çalıştırılmasını sağlar. Bu, terminal kapatıldığında bile komutun çalışmaya devam etmesini sağlar.

nohup ./script.sh &

Bu komut, script.sh dosyasını arka planda ve terminalden bağımsız bir şekilde çalıştıracaktır. Çıktılar ise varsayılan olarak nohup.out dosyasına kaydedilir.

5. Zamanlanmış Görevler (cron ve at)

Cron İle Zamanlanmış Görevler

cron aracı, belirli zaman aralıklarında belirli komutların otomatik olarak çalıştırılmasını sağlar. Bir cron görevi oluşturmak için crontab dosyasını düzenleyebilirsiniz:

crontab -e

Bir cron satırı aşağıdaki biçimdedir:

0 3 * * * /path/to/script.sh

Bu örnekte, script.sh dosyası her gün saat 03:00’da çalıştırılır.

at Komutu İle Tek Seferlik Görevler

at komutu, belirli bir zamanda bir komutun bir kez çalıştırılmasını sağlar. Örneğin, iki saat sonra bir komut çalıştırmak için:

echo "/path/to/script.sh" | at now + 2 hours

Bu komut, belirtilen script’i iki saat sonra çalıştıracaktır.

Linux ve UNIX sistemlerde süreç yönetimi, sistem performansının artırılması ve gereksiz kaynak tüketiminin önlenmesi açısından önemlidir. Bash script kullanarak süreçlerin izlenmesi ve yönetilmesi, sistem yöneticilerine güçlü ve esnek bir kontrol sağlar. Bu makalede, süreç izleme, sonlandırma ve arka plan işlemlerini yönetme gibi temel süreç yönetim tekniklerini öğrendik. Bu bilgiler, sistem yönetimi sırasında karşılaşılan zorlukları daha etkili bir şekilde çözmek için kullanılabilir.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Geliştirme