Linux Process Yönetimi Komutları ve Kullanımları

LaDez's

XeN CoDeR
Yönetici
#1
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.

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.
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.
kill komutu: Bu komut ile sistemde var olan processlerin id leri girilerek bir process sonlandırılabilir
killall komutu: Bu komuta girilecek dizin parametresi ile dizin altındaki bütün processler sonlandırılabilir.
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.

pstree komutu: Bu komut sistem üzerinde koşan processleri bir ağaç olarak kullanıcıya sunar.
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.

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.

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.
 
Üst