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

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….!!

 

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

Mehmet Salih Deveci

I am Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress mehmetsalih.deveci@outlook.com.Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  mehmetsalih.deveci@outlook.com a mail atabilirsiniz.

One thought on “Linux Process Yönetimi Komutları ve Kullanımları

  • October 16, 2012 at 6:00 am
    Permalink

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

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *