Linux Çalışan Program(ları) Bulma


Kategori:
kullanım

Bazen kullandığımız programalrın yada kendi yazmış olduğumuz scriptlerin çalışması konusunda diğer programların çalışması sorun oluşturabilmektedir. Öyleki çift monitörlü bilgisayar kurulumunda ikinci monitör ile olan bağlantı henüz kesilmeden diğer monitör devreye girebiliyor yada çakışmalar olabiliyor. Yada monitör bağlantılarını gerçekleştirmeyi sağlayan komutlar henüz sonlanmadan, hemen alt satırdaki komutlar işletilmeye başlanıyor, bu durum da bazen can sıkıcı olabiliyor. Linux sistemler üzerinde bir program çalışmaya başladığı anda o programa bir PID(Pocess Idataması yapılır. Bunu şu şekilde düşünebiliriz Linux sistemlerde çalışan her program/scriptin bir nevi kimlik numarası vardır. Fakat bu kimlik numarası dinamik bir numaradır. Her zaman aynı olmaz, bir program/script çalıştığı an ona hemen bir ID ataması yapılır.

PID numarası ile programın çalışıp çalışmadığını elde etme:

PID numarası çalışmakta olan, aktif edilmiş bir program/scripte verileceğini yukarıda söyledik. O zaman bu durumu kullanarak PID numarasını elde ederek bir programı kapatabiliriz yada bu numarayı elde ederek programın çalışıp çalışmadığını anlayabiliriz. Sonuçta çalışmayan program/script bir PID numarasına sahip olmayacaktır. Bunun için birçok yöntem bulunmaktadır. Sizlere bir kaç örnek ile bunun yapmayı göstereceğiz. Aşağıdaki komutları Terminal Ekranında yazarsak bizlere programın PID numarasını verecektir. Örneğin Firefox  programının PID numarasını bulalım.
pgrep firefox 1453
Evet pgrep komutu ile PID numarasını bulmuş olduk. Eğer Firefox çalışmıyor olsaydı o zaman hiçbirşey elede edemezdik ve programın çalışmadığını anlardık. Örneğin Firefox çalışıyor ve donma sorunu oluştu yada herhangi bir hata oluştu. O zaman kill -9 komutunu mecburen kullanmak zorunda kaldık diyelim o zaman aşağıdaki şekilde Firefox programını kökten kapatabiliriz. Tabi Firefox olmaz başka bir program olur. O zaman şu şekilde bir komut işimizi görecektir.
kill -9 "$(pgrep firefox)"

Pidof ile PID numarası elde etme:

pidof, bu komutun anlamı sonrasında yazılan programın PID numarası, anlamına gelmektedir. Örnek kullanım:
pidof firefox 9999
şeklinde olmaktadır.

ps komutu ile programın çalışıp çalışmadığını kontrol etme:

ps komutunu aux parametresi ile kullanarak programın çalışıp çalışmadığını kontrol edebiliriz. Örnek kullanım,
ps aux | grep firefox | grep -v "grep" | awk '{print $2}' 11600
şeklinde olmaktadır. Burada ikinci grep  komutunu kullanma sebebimiz, komutun kendiside çalıştığı için ps aux ile tüm çalışan programları çektiğimiz zaman yazmış olduğumuz komut da bu listenin içerisinde bulunmaktadır. Bundan dolayı eğer ikinci grep komutunu kullanmazsak o zaman her zaman programın çalıştığını düşünürüz. Böylece asıl istediğimiz veriyi yani "İçerisinde firefox geçen satırların değil, programın çalıştığına dair bilgileri içeren satırları" elde etmiş oluruz. Bunları neden anlattık? Bazen bir programın kapanmasında sorun olabiliyor, bazı programların düzgün çalışabilmesi için gerekli programların önceden çalışmış olması gerekebiliyor yada bilgisayar başladığı zaman bazı programların "eğer çalışmıyor ise" çalıştırılması istenebiliyor. Tabiki bir programın çalışıp çalışmadığını anlamanın bir çok yöntemi olduğunu tekrar belirtmek isteriz. Biz herhangi bir programın çalışıp çalışmadığını anlamanın yanında bunu programa ait PID numarası ile yaparak PID numarası kullanımını da sizlere göstermek istedik. Bu sayede kuracağınız algoritmalar için kullanılacak değişken sayısı artacak ve algoritmanın işleyişi daha da kolay bir hale gelecektir. Bu gibi durumlarda /etc/rc.d/rc.local dosyasına komutlarınızı yazarak sistem her başladığında istediğiniz olayların olmasını sağlayabilirsiniz. Örnekler hayal dünyanıza bağlı olarak arttırılabilir.



Diğer Paylaşımlar
Yorumlar