Merhaba Değerli Arkadaşlar…

Bugünkü yazımda sizlere Linux ta Process yönetimi komutlarını neler olduklarını ve nasıl kullanıldıklarını anlatacağım. Process yönetimi komutlarını okumadan önce konuyla alakalı diğer yazılarımı okumanızı tavsiye ederim. Şimdi detaylı bir şekilde Linux Process yönetimi komutlarını ele alacağım.

3.Process (Süreç) Yönetimi Komutları:

Linux Process yönetim komutlarına geçmeden önce Process kavramını ele alalım. Process: İşletim sistemleri üzerinde koşan programların parçalarından her birisine verilen addır. Processler o an koşan programın kodunu ve yaptığı işlevleri tutarlar.Processler bir çok alt görevi aynı anda yerine getiren çoklu threadlerden de oluşabilir. Genel olarak Processler aşağıdaki yapıları içerirler.

  • Koşmakta olan bir Program
  • Programla alakalı Asenkron bir işlev
  • İşlemcinin belirlediği bir görev

Linux ta bulunan ve Süreçlerle alakalı olan veya Süreçlerin yönetiminde rol alan komutlar aşağıdaki gibidir.

  • ps
  • top
  • kill
  • killall
  • bg
  • fg
  • pidof
  • pgrep
  • pstree
  • fork
  • getpid
  • getppid
  • exec
  • wait
  • pipe
  • dup
  • open
  • close
  • read
  • write
  • last
  • lastcomm

Yukarıda bahsettiğim Süreç yönetimi komutlarını anlatmadan önce önemli bir komutu tekrar tekrar hatırlatmak istiyorum. Bu komut ” man ” komutudur. Bu komut ile işlevini duyduğumuz ancak çok ayrıntılı bir şekilde bilgi edinmek istediğimiz komutları öğrenebiliriz. Komutun işlevlerini ve aldığı parametreleri,bu parametrelerle kullanıldığında nasıl işlev gördüğünü ayrıntılı olarak kullanıcıya sunmaktadır.

Şimdi örnek olarak ”  lastcomm  ” komutunu öğrenmek için man komutumuza başvuruyoruz.Kullanımı ve çıktısı aşağıdaki gibidir.

ps komutu: Bu komut ile sistem üzerinde koşmakta olan tüm süreçleri ve bu süreçlerin process id leri kullanıcıya sunulur. Komutun kullanımı ve çıktısı aşağıdaki gibidir.

top komutu: Bu komut ile Linux sistemleri üzerinde koşmakta olan görevleri ve temel sistem durumunu ayrıca koşmakta olan programların harcadıkları bellek ve cpu miktarları kullanıcıya sunulur. Bu komutun kullanımı aşağıdaki gibidir.

kill komutu: Bu komut ile sistemde var olan processlerin id leri girilerek bir process sonlandırılabilir. Linux sistemlerde bir süreci sadece ve sadece en üstün haklara sahip olan root kullanıcısı silebilir.O yüzden ”  su  ” komutunu kullanıp root şifresini giriyoruz.Ardından root kullanıcısı olduğumuzda kill “Process id” si girilip bu süreç sonlandırılır. Komutun kullanımı aşağıdaki gibidir.

killall komutu: Bu komuta girilecek dizin parametresi ile dizin altındaki bütün processler sonlandırılabilir. Komutun kullanımı yukarıdakine benzer.

bg komutu: Bu komut bütün Linux dağıtımlarında mevcut olmayabilir. Ancak genel görevi sistemde durmuş olan bir görevi yada processi arka planda devam ettirir.Bunun dışında sistem üzerinde şuanda koşmakta olan görevleri listeler.

fg komutu: Bu komut sistem üzerinde durmakta olan bir süreci yada görevi ön plana çekerek koşmasını sağlar. Her Shell kabuğu bu komutu koşmaz.

pidof komutu: Bu komut ile sistem üzerinde mevcut olan bir programın işlem id sini çıktı olarak verir.

pgrep komutu:Bu komut ile şuanda koşan bir processin ve onunla birlikte belirtilen kritere göre olan processlerin id si kullanıcıya sunulur.Komutun kullanımı aşağıdaki gibidir.

pstree komutu: Bu komut sistem üzerinde koşan processleri bir ağaç olarak kullanıcıya sunar. Komutun kullanımı aşağıdaki gibidir.

fork komutu: Bu komut linux ve unix sistemlerde koşan bir processin bir kopyasını oluşturan komuttur. Süreç kopyalandıktan sonra parent-child olmak üzere iki süreç oluşur sistemde. Bu komut sistem üzerinde farklı bir işlevi gerçekleştirmek için genelde kullanılır. Böylece bu komut ile oluşan child process sistem üzerinde farklı işlevler görebilir.

getpid komutu: Bu komut ile kullanıcıya şuanki koşan processin id sini verir.

getppid komutu: Bu komut ile kullanıcıya şuanki koşan processin parent ının id sini verir.

exec komutu: Bu komut linux sistemlerinde bir processin farklı bir program olarak çalışmaya devam etmesini sağlar. Bu işlem sonrası processin id si ve kontrol bloğu değişmez. Exec komutu aldığı parametrelere ve gördüğü işlevlere göre 6 farklı şekilde çalışırlar.Bunlar ve aldıkları parametreler aşağıdaki gibidir.

int execl(const char *path, const char *arg0, … /*,(char *) 0 */);

int execv(const char *path, char *const argv[]);

int execle(const char *path, const char *arg0, … /*, (char *) 0, char *const envp[] */);

int execve(const char *path, char *const argv[], char *const envp[]);

int execlp(const char * file, const char *arg0, … /*, (char *) 0 */);

int execvp(const char *file, char *const argv[]);

wait komutu: Bu komut belli bir süreci beklemek için kullanılır. Genellikle sistem programlarken yazılan bash scriptler de kullanılır. Fork komutuyla oluşturulan child process in işleyişi tamamlandığında parent processi beklemek zorundadır. Bekletirken wait komutu kullanılır.

pipe komutu: Bu komut ile bir komutun çıktısını bir diğer komuta girdi olarak verebiliriz. Pipe kullanılırken ”  |  ” işareti kullanılır. Komutun kullanımı ve çıktısı aşağıdaki gibidir.

dup komutu: Bu komut ile Dosya tanıtıcısı olarak sistem üzerinde açık olan bir kanal oluşturur. Yada dosya tanıtıcısı çoğaltılır. Sistem programlamada bash scriptlerde çokça kullanılır. Kullanılan kanallar 3 türlüdür open,close,other şeklinde. Dup kumutuyla sistem üzerinde açık olan bir kanalın fd si dönderilir. Open kanalı açık ise fd=0,close ise fd=1 other ise fd=2 olarak kullanıcıya geri döner. Dup komutunun kendisiyle birlikte 2 tane daha çeşiti vardır. bunlar dup2 ve dup3 şeklindedir. Aldıkları parametreler aşağıdaki gibidir.

int dup(int oldfd);

int dup2(int oldfd, int newfd);

int dup3(int oldfd, int newfd,int flags);

open komutu: Bu komut linux ve unix sistemlerinde bir Sistem çağrısı olarak geçer. Girilen bir dosya yolunu belirli bir duruma göre açabilir. Sadece dosyanın yolu belirtilirse bu dosya yolundaki dosyayı açar. Kullanımı ve aldığı farklı durumlardaki parametreler aşağıdaki gibidir.

int open(const char *pathname, int flags);

int open(const char *pathname, int flags, mode_t mode);

close komutu: Bu komut tıpkı open komutu gibi bir sistem çağrısıdır. Belirtilen bir dosya tanıtıcısını kapatır. Kullanımı ve aldığı parametre aşağıdaki gibidir.

int close(int fd);

read komutu:Sistem çağrısı olan read komutu ile belirli bir kanaldan bir data okunur. Kullanımı aşağıdaki gibidir.

read [-ers] [-a aname] [-p prompt] [-t timeout]

write komutu: Bu komut ile diğer kullanıcılara terminal aracılığıyla iletişim kurulabilir. Kullanımı aşağıdaki gibidir.

write user [ttyname]

last komutu: Bu komut ile geçmişte sisteme bağlanan tüm kullanıcıları ve onlar hakkında çeşitli bilgileri kullanıcıya sunar.Komutun kullanımı ve çıktısı aşağıdaki gibidir.

lastcomm komutu: Bu komut ile kullanıcıya önceden icra edilmiş tüm komutlar listelenir. Verilecek parametreye göre farklı çıktılar üretir. Bu parametreler kullanıcı adı,komut adı,dosya adı vb şeklindedir.

Böylece Bir yazımın daha sonuna gelmiş olduğumu belirtmek istiyorum.Bir sonraki yazımda sizlere Linux sistemlerinde Arama ve Network için kullanılan komutları anlatacağım. Esen Kalmanız Ümidiyle….!!

 

Mehmet Salih Deveci

Bilgisayar Mühendisi

Reklamlar
yorum
  1. pessenger dedi ki:

    çok yararlı bir çalışma, tebrik ederim..

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s