İPUCU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

Seçenekler

Linux Süreç Yönetimi //WhiteRed

bir Hafta önce
#1
"P4RS - ait Kullanıcı Resmi (Avatar)
Bilgi Teknolojileri Ekibi
Üyelik tarihi:
01/2017
Nereden:
Balkes
Yaş:
18
Mesajlar:
3.244
Teşekkür (Etti):
332
Teşekkür (Aldı):
681
Konular:
239
Merhabalar TürkHackTeam ailesi, bugün sizlere Linux Süreç Yönetimi'ni anlatacağım. Konumu fazla uzun tutmadan ders tadında anlatmaya çalışacağım iyi okumalar.

Konu Başlıkları

• Süreç Kavramı
• Parent
• Child
• Konumda ki Bazı Terimler
1. UID:
2. EUID:
3. GID
• ps (Prosesleri Göster)
• ps Parametreleri
1. a
2. u
3. e
4. v
5. x
6. –ef
• PID
• PPID
• ps aux Komutu
• Bir Sürecin PID Bulma
• Birden Fazla PID Numarasını Öğrenme
• PID Numaralı Sürecin Detayını Öğrenmek
• top komutu
• htop Komutu
• Kill Komutu ile Süreç Numarası Öldürme(Bitirme)
• Birden Fazla Süreç Numarasını Sonlandırmak
• Bir Süreci Öldürmek
• Tek Bir Komut ile Birden Fazla Süreç Öldürme
• Bir Süreci Kesin Sonlandırma
• Süreç Öncelikleri
• nice Komutu
• renice Komutu


Öncelikle Süreç Kavramından bahsedeyim sizlere

Süreç Kavramı

Süreç, çalışmakta olan uygulamaya denir. Şu şekilde örnek vereyim bir uygulamamız var arka planda duruyor (pasif) bu uygulama belleği (RAM) zorlayarak çalıştırıyor ve bu sayede yeni bir oluşum ortaya çıkıyor buna da süreç diyoruz. Her bir program sadece bir tane süreç oluşturur fakat bazı istisnai durumlarda birden fazla süreç oluşturulabilir. Mesela örnek vermek gerekirse “Mozilla”. Mozilla her bir sekme de bir süreç oluşturur ve bunları kullanır. Program pasiftir arka plandadır fakat süreç aktiftir ön plandadır.



Şimdi tanımını yaptık ufaktan başlayalım konumuza

Linux sistemi her bir sürece bir ID belirler. Bu süreçlerin oluşumundan sorunlu “Parent”tır”.
Süreçlerde 2 tane önemli oluşum vardır. Biri "Parent" diğeri "Child" peki nedir bunlar?

Parent



Bir sürecin oluşturan yapıya "Parent" diyoruz.

Child



Yeni oluşan süreçlere de "Child" denir.

Bu iki sürecin çalışmasında şu şekilde anlatabilirim;

Parent ve Child aynı anda çalışmaya devam edebilir

Parent bazı Child'ların bitmesini bekler.


Konumda ki Bazı Terimler

Konumda kullanacağım bazı terimleri burada açıklamak istiyorum öncelikle;

UID: Kişinin kullanıcı kimlik numarası
EUID: Belirli bir zamanda hangi haklara sahip olduğunu belirlemek için kullanılır.
GID: Grup kimlik numarasıdır.


Şimdi de süreçlerin gösterimine geçelim. Bütün süreçleri göstermek için kullandığımız bir komut var bu;

Ps (Prosesleri Göster)

Ps, komutu sayesinde çalışmakta olan süreçleri görebiliriz.

Kullanımı

ps [Parametreler] olarak kullanılmaktadır. Birçok parametresi vardır bunları kısaca tanımlayacağım.


ps Parametreleri

a: Bütün terminalde ki çalışan süreçleri gösterir.



u: Hangi kullanıcı istek gösteriyorsa o kullanıcının kullandığı süreçleri gösterir.



e:Komutları ve parametreleri gösterir.



v:Kullandığı RAM’e göre gösterir.



x:Sistem de çalışan bütün süreçleri gösterir.(a parametresinden farkı; a parametresi sadece terminaldekileri gösterirken x parametresi bütün sistemde ki çalışan süreçleri göstermektedir.)



-ef:Çalışan bütün süreçleri gösterir.

Kod:
ps –ef
komutu yardımıyla yapacağız.

Terminali açıyoruz ve
Kod:
ps –ef
yazıyoruz.



Yazıktan sonra bizlere bütün süreç listesini gösterecektir. Burada önemli birkaç yer bunlardan bahsedeyim



Üstte
Kod:
PID ve PPID
yazısını görüyorsunuz. Bunların açıklamasını yapayım;


PID



Process ID, yani süreç ID’si demek. Üstte bundan bahsetmiştim.


PPID



Parent Process ID, yani ebeveyn süreç ID’si demektir. Süreci oluşturan bileşen.

Linux dağıtımımız açıldığında ilk başta süreç ID’si “1” olan oluşur. Bu da diğer girişleri oluştur.

ps aux Komutu

En çok kullanılan komuttan biridir kendisi. “a”, “u”, “x” komutlarının hepsinin aynı anda kullanılması için kullanılır. Tek tek üçünü de aramak yerine tek bir sefer de arayabilirsiniz.




PID Numarasını Sorgulama

Örneğin bir PID (Process ID) komutunun ne işlevinde bulunduğuna bakmak için ise

Kod:
ps –p IDnumarası


Gördüğünüz gibi “ID” numarası yerine “6” yazdım ve “6” ID’sine sahip süreci bizlere gösterdi.


Bir Sürecin PID Bulma

Bu işlem de “grep” komutundan yardım alacağız. (Bu komutun ne işe yaradığını bilmiyorsanız Linux Temel Komutlar konuma bakabilirsiniz.) Altta verdiğim komut yardımıyla bütün süreçler taranacak ve “Bash” ile ilgili bütün süreç numaralarını gösterecektir.



Solda gördüğünüz numara “PID” değeridir. Bu şekilde bir sürecin PID’sini bulabilirsiniz.

Bunun pratik bir şekli de altta ki gibidir;

Kod:
pidof aradığımız süreç ismi
olarak yazıyoruz.



Gördüğünüz gibi direk PID’sini gösterdi.


Birden Fazla PID Numarasını Öğrenme

Birden fazla PID numarasında ki süreçleri görmek için “-p” parametresinden yararlanabiliriz. Birden fazla PID numarası eklemek için PID numaraları aralarına virgül(“,”) koyuyoruz.


Kod:
ps –f –p IDnumara1, IDnumara2


Gördüğünüz gibi sadece 2 tanesinin PID değeri varmış ve bunları bizlere gösterdi.


PID Numaralı Sürecin Detayını Öğrenmek

Bunun için
Kod:
ps –v –p PIDnumara
olarak yazıyoruz.



Gördüğünüz gibi detaylı bir sonuç çıkarttı bizlere.


top Komutu

Top komutunu “Temel Linux Komutları” konumda anlatmıştım fakat burada da tekrardan anlatacağım. Top komutu sayesinde anlık olarak çalışan bütün süreçleri göstermektedir. CPU ve RAM kullanımlarını da göstermektedir bundan da yararlanabilirsiniz.

Terminali açıp
Kod:
top
yazıyoruz.



Yazdıktan sonra bizlere anlık olarak süreçleri gösteriyor.



Burada bazı başlıklar altında ayırmalar var gördüğünüz gibi.

PID: Süreç Kimliği
User: Kullanıcı
PR: Sürecin önceliği
NI: Kullanıcının belirttiği öncelik değeri
VIRT: Sürecin harcadığı RAM miktarı
RES: Sürecin o anki çalışma durumu
%CPU: Sürecin kullandığı işlemci alanı
%MEM: Sürecin kullandığı bellek alanı
TIME+: Sürecin çalıştığı süre
Command: Sürecin ismi

Bu süreç gösterimi hep açık kalacaktır. Bundan çıkmak için “CTRL + C” yapınız.


Htop Komutu



Htop komutu ile bilgisayarın kullanımında ki CPU, ram gibi parametreleri görebilmek için kullanılır. Top komutundan daha detaylı ve anlaşılır bir komuttur.



Kod:
htop

Kill Komutu ile Süreç Numarası Öldürme(Bitirme)

Kill komutunun asıl kullanım amacı durmuş ya da cevap vermeyen programlarda kullanılıyor. Windowsta ki “Program yanıt vermiyor” tarzında düşünebilirsiniz. Bunun için Linux’ta “Kill” komutunu kullanıyoruz.

Kod:
kill PID değeri
diyerek girdiğimiz PID sürecini sonlandırıyoruz.




Birden Fazla Süreç Numarasını Sonlandırmak

Birden fazla süreci sonlandırmak için ise
Kod:
kill PID1 PID2 PID3
olarak yazıyoruz. Araya boşluk bırakıyoruz.




Bir Süreci Öldürmek

Burada ise
Kod:
kill süreçismi
olarak yazıyoruz.




Tek Bir Komut ile Birden Fazla Süreç Öldürme

Burada
Kod:
pkill Süreçismi
olarak yazıyoruz. Amaç burada tek bir komut ile bir süreç topluluğunu bitirmek.




Bir Süreci Kesin Sonlandırma

Bir süreci sadece “kill” komutu ile sonlandırmayı denediniz fakat sonlanmadıysa burada göstereceğim parametre yardımıyla kesin olarak öldüreceksiniz.
Kod:
kill -9 Süreçismi




Süreç Öncelikleri

Süreçlerde öncelik sayıya bakılarak belirlenir. Sayımız ne kadar büyük ise öncelik o kadar ondadır. Tüm süreçlerde ki mutlak öncelik “0” dır. Yani 0’dan başlayarak artan sayılarda öncelik azalmaktadır. Bir işlemci de diyelim ki aynı anda 2 süreç çalışacak iki süreçten hangisinin önceliği fazla ise o kullanmaya başlar. Birisi işlemciyi zaten kullanıyor fakat bir süreç daha geldi ve o da kullanmak istiyor. İşlemciyi kullanan sürecin önceliği düşük ise yüksek olan onun yerini alacaktır.

Genel olarak bilgi verdim şimdi süreçlerin önceliklerini değiştirme işlemine geçelim


nice Komutu

Bu komut sayesinde bir sürecin öncelik değerini -20 – 20 arasında belirleyebiliriz. -20 En yüksek öncelik 20 ise en düşük önceliktir.
Kod:
nice –n -16 Xorg


Olarak yazıyoruz ve bakmak için ise [CODE]top | grep Xorg[/IMG]




renice Komutu

Bu komut sayesinde “nice” komutu ile önceliği değiştirilmiş bir sürecin önceliğini değiştirmek için kullanılır. [CODE]renice 14 –p Xorg/CODE]



Daha sonra bakmak için
Kod:
top | grep Xorg
yazıyoruz.




Arka Planda Komut Çalıştırma- Nohup(Oturum Kapatılsa Bile Çalışan Süreç)

Başlıkta zaten anlattım fakat detaya inmemiz gerekirse, diyelim ki siz Linux dağıtımınızda bir site taraması yapıyorsunuz ve acil bir işiniz çıktı bilgisayarı da açık bırakmak istemiyorsunuz. Bunun için site taraması yapan komutunuz bittiğinde Linuxunuz kapanacaktır.

Kullanımı için
Kod:
nohup komut_ismi &
yazıyoruz.

Burada “ & “ nedir derseniz bu Linux’tan çıktığınızda seçtiğiniz komutun kill edilmesini (kapatılmasını) engeller.



Mesela ben burada “Wpscan” uygulamasında denedim ve işe yaradı.

Ayrıca “nohup” komutu işlem önceliğini değiştirmez arkadaşlar.

Konum bu kadardı okuyup bilgilendiyseniz ne mutlu bana (:




Kullanıcı İmzası
SolidStar




Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı