Process ’leri sinyaller (signals) ile kontrol edebilirsiniz. Sisteminizin desteklediği sinyalleri görmek için
$ kill -l
komutunu gönderiniz. Şuna benzer bir çıktı alacaksınız:
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE
9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG
17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD
21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGINFO 30) SIGUSR1 31) SIGUSR2
Terminal penceresinde komut satırında komutunuz bekleniyorsa
$ kill -[Signal Number] [PID]
komutunu gönderebilirsiniz. Burada [Signal Number] sinyal numarası [PID] ise process ID ’sidir. Mesela;
$ kill -9 1234
komutu, 1234 ID ’li process ’e 9 numaralı sinyali gönderir. 9 numaralı sinyal ise SIGKILL ’dir. Göndermeniz gereken sinyalin numarasını yazının başında bahsettiğimiz yöntemle öğrenebilirsiniz. Process ID ’sini öğrenmek için ise
$ ps
komutunu gönderiniz. Bu komutun çıktısında, kendisine sinyal göndermek istediğiniz process ’i bulup ID’sini öğrenebilirsiniz.
Komut satırında komutunuz beklenmiyorsa ne yapacaksınız? Aktif process’e gönderilebilecek sinyallerden bazılarını klavye kısayolları ile göndermek mümkün.
SIGINT göndermek için Ctrl+C ( ^C ),
SIGQUIT göndermek için Ctrl+\ ( ^\ ),
SIGTSTP göndermek için Ctrl+Z ( ^Z ),
SIGINFO göndermek için Ctrl+T ( ^T ),
kullanılabilir.
Ayrıca Ctrl+D ( ^D ), shell ’e bir EOF marker ’ı göndererek terminal penceresinin nazikçe kapanmasını sağlar. Ctrl+L ( ^L ) de uygulamadan çıkmaya gerek kalmadan ekranı temizler.
$ stty -a
komutu ile elde edeceğiniz çıktıda, kullanılabilecek klavye kısayolları listelenir. Diğer kısayolları, bu listeyi inceleyerek anlayabilirsiniz.
Job
Shell ’in yönettiği her process birer job ’tır.
Bir job ancak 3 durumdan birindedir:
- Foreground: Varsayılan durumdur. Job ön planda çalışır.
- Background: Job arka planda çalışır. Bir komutun sonuna & sembolünü eklerseniz komut arka planda çalışmaya başlayacaktır. Önce sanki ön planda çalışıyormuş gibi görünebilir ama Enter’a basınca komut satırı komut beklemeye başlayacaktır.
- Stopped: Job durmuş, job ’a bağlı process duraklatılmış durumdadır. Bir job’ın bu vaziyete geçmesi için, job, foreground durumundayken yukarıda bahsedildiği gibi Ctrl+Z kullanılabilir.
Job Kontrol Komutları
$ jobs
komutu, tüm job ’ları listeler. Ayrıca background ’ta iken bitmiş process ’lere bağlı job ’ları da bir defalığına listelemeye ekler.
$ bg
komutu, son başlayan job ’ın çalışmasını arka planda devam ettirir.
$ bg %[Job Number]
komutu, [Job Number] numaralı job ’ın çalışmasını arka planda devam ettirir.
$ fg
komutu, en son arka plana atılan job ’ı ön plana alarak bağlı process ’in çalışmasını, eğer duraklatılmış idi ise, devam ettirir.
$ fg %[Job Number]
komutu, [Job Number] numaralı job ’ı ön plana alarak bağlı process ’in çalışmasını, eğer duraklatılmış idi ise, devam ettirir.
$ sleep [seconds]
komutuyla alıştırmalar yapabilirsiniz. Mesela;
$ sleep 60 &
process ’i background durumunda 60 saniye çalışır.