Linux Yöneticisi - Süreç Yönetimi

Aşağıdakiler Süreç Yönetimi ile kullanılan genel komutlardır - bg, fg, nohup, ps, pstree, top, kill, killall, free, uptime, nice.

Süreçlerle Çalışın

Quick Note: Process PID in Linux

Linux'ta çalışan her işleme bir PID veya İşlem Kimliği Numarası verilir. Bu PID , CentOS'un belirli bir süreci nasıl tanımladığıdır. Daha önce tartıştığımız gibi systemd başlatılan ilk süreçtir ve CentOS'ta PID değeri 1'dir.

Pgrep belirli bir işlem adı için Linux PID elde etmek için kullanılır.

[root@CentOS]# pgrep systemd 
1 
[root@CentOS]#

Görüldüğü gibi, pgrep komutu systemd'nin mevcut PID'sini döndürür.

CentOS'ta Temel CentOS Süreci ve İş Yönetimi

Linux'ta süreçlerle çalışırken, komut satırında temel ön plan ve arka plan işlemlerinin nasıl gerçekleştirildiğini bilmek önemlidir.

  • fg - Süreci ön plana çıkarır

  • bg - Süreci arka plana taşır

  • jobs - Kabuğa eklenen mevcut işlemlerin listesi

  • ctrl+z - Mevcut süreci uyumak için Control + z tuş kombinasyonu

  • & - Süreci arka planda başlatır

Kabuk komutunu uyku kullanmaya başlayalım .sleepsadece adlandırıldığı gibi yapacak, belirli bir süre uyuyacak : uyku .

[root@CentOS ~]$ jobs

[root@CentOS ~]$ sleep 10 & 
[1] 12454 

[root@CentOS ~]$ sleep 20 & 
[2] 12479

[root@CentOS ~]$ jobs 
[1]-  Running                 sleep 10 & 
[2]+  Running                 sleep 20 &

[cnetos@CentOS ~]$

Şimdi ilk işi ön plana çıkaralım -

[root@CentOS ~]$ fg 1 
sleep 10

Eğer takip ediyorsanız, ön plan işinin kabuğunuzda sıkıştığını fark edeceksiniz. Şimdi işlemi uyku moduna alalım, ardından arka planda yeniden etkinleştirelim.

  • Vuruş kontrolü + z
  • Şunu yazın: bg 1, ilk işi arka plana gönderin ve başlatın.
[root@CentOS ~]$ fg 1 
sleep 20 
^Z 
[1]+  Stopped                 sleep 20

[root@CentOS ~]$ bg 1 
[1]+ sleep 20 &

[root@CentOS ~]$

nohup

Bir kabuk veya terminalden çalışırken, varsayılan olarak, kabuğa eklenen tüm işlemlerin ve işlerin, kabuk kapatıldığında veya kullanıcı oturumu kapattığında sona ereceğini belirtmek gerekir. Nohup kullanıldığında , kullanıcı oturumu kapatırsa veya sürecin eklendiği kabuğu kapatırsa işlem çalışmaya devam edecektir.

[root@CentOS]# nohup ping www.google.com & 
[1] 27299 
nohup: ignoring input and appending output to ‘nohup.out’

[root@CentOS]# pgrep ping 
27299

[root@CentOS]# kill -KILL `pgrep ping` 
[1]+  Killed                  nohup ping www.google.com

[root@CentOS rdc]# cat nohup.out  
PING www.google.com (216.58.193.68) 56(84) bytes of data. 
64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 1 ttl = 128
time = 51.6 ms 
64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 2 ttl = 128
time = 54.2 ms 
64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 3 ttl = 128
time = 52.7 ms

ps Komutu

pskomutu, yöneticiler tarafından belirli bir işlemin anlık görüntülerini araştırmak için yaygın olarak kullanılır. ps , grep ile birlikte analiz edilecek belirli bir işlemi filtrelemek için yaygın olarak kullanılır .

[root@CentOS ~]$ ps axw | grep python 
762   ?        Ssl    0:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork -nopid 
1296  ?        Ssl    0:00 /usr/bin/python -Es /usr/sbin/tuned -l -P 
15550 pts/0    S+     0:00 grep --color=auto python

Yukarıdaki komutta, python yorumlayıcısını kullanan tüm işlemleri görüyoruz . Sonuçlara ayrıca python dizesini arayan grep komutumuz da dahil edildi .

Aşağıda ps ile kullanılan en yaygın komut satırı anahtarları verilmiştir .

Değiştirmek Aksiyon
a Yalnızca mevcut kullanıcı için raporlama süreçlerinin kısıtlamalarını hariç tutar
x Bir tty veya kabuğa bağlı olmayan işlemleri gösterir
w Çıktının geniş çıktı görüntüsünü biçimlendirir
e Komuttan sonra ortamı gösterir
-e Tüm süreçleri seçer
Kullanıcı tanımlı biçimlendirilmiş çıktı
-u Belirli bir kullanıcıya göre tüm işlemleri gösterir
-C Tüm işlemleri ada veya işlem kimliğine göre gösterir
--çeşit İşlemleri tanıma göre sıralar

Hiçkimse kullanıcısı tarafından kullanılan tüm süreçleri görmek için -

[root@CentOS ~]$ ps -u nobody 
PID TTY          TIME CMD 
1853 ?        00:00:00 dnsmasq 

[root@CentOS ~]$

Güvenlik duvarı süreci hakkındaki tüm bilgileri görmek için -

[root@CentOS ~]$ ps -wl -C firewalld 
F   S   UID   PID   PPID   C   PRI   NI   ADDR   SZ   WCHAN   TTY   TIME      CMD
0   S     0   762      1   0    80   0     -   81786  poll_s   ?   00:00:01 firewalld 

[root@CentOS ~]$

Hangi işlemlerin en çok belleği tükettiğini görelim -

[root@CentOS ~]$ ps aux  --sort=-pmem | head -10 
USER       PID   %CPU   %MEM   VSZ     RSS   TTY   STAT   START   TIME   COMMAND 
cnetos     6130   0.7   5.7   1344512 108364  ?      Sl   02:16   0:29  /usr/bin/gnome-shell 
cnetos     6449   0.0   3.4   1375872 64440   ?      Sl   02:16   0:00  /usr/libexec/evolution-calendar-factory 
root       5404   0.6   2.1   190256  39920 tty1     Ssl+ 02:15   0:27  /usr/bin/Xorg :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-iDefCt/database -seat seat0 -nolisten tcp vt1 
cnetos     6296   0.0   1.7   1081944 32136   ?      Sl   02:16   0:00  /usr/libexec/evolution/3.12/evolution-alarm-notify 
cnetos     6350   0.0   1.5   560728  29844   ?      Sl   02:16   0:01  /usr/bin/prlsga 
cnetos     6158   0.0   1.4   1026956 28004   ?      Sl   02:16   0:00  /usr/libexec/gnome-shell-calendar-server 
cnetos     6169   0.0   1.4   1120028 27576   ?      Sl   02:16   0:00  /usr/libexec/evolution-source-registry 
root       762    0.0   1.4   327144  26724   ?      Ssl  02:09   0:01  /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 
cnetos     6026   0.0  1.4 1090832 26376      ?      Sl   02:16   0:00  /usr/libexec/gnome-settings-daemon

[root@CentOS ~]$

Kullanıcı merkezlerine ve formata göre tüm işlemleri görün, özel çıktıyı görüntüleyin -

[cnetos@CentOS ~]$ ps -u cnetos -o pid,uname,comm 
   PID    USER     COMMAND 
   5802  centos   gnome-keyring-d 
   5812  cnetos   gnome-session 
   5819  cnetos   dbus-launch 
   5820  cnetos   dbus-daemon 
   5888  cnetos   gvfsd 
   5893  cnetos   gvfsd-fuse 
   5980  cnetos   ssh-agent   
   5996  cnetos   at-spi-bus-laun

pstree Komutu

pstreeps'ye benzer, ancak sıklıkla kullanılmaz. İşlemleri daha düzgün bir ağaç tarzında gösterir.

[centos@CentOS ~]$ pstree 
  systemd─┬─ModemManager───2*[{ModemManager}] 
          ├─NetworkManager─┬─dhclient 
          │                └─2*[{NetworkManager}] 
          ├─2*[abrt-watch-log] 
          ├─abrtd 
          ├─accounts-daemon───2*[{accounts-daemon}] 
          ├─alsactl 
          ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon} 
          │                 └─3*[{at-spi-bus-laun}] 
          ├─at-spi2-registr───2*[{at-spi2-registr}] 
          ├─atd 
          ├─auditd─┬─audispd─┬─sedispatch 
          │        │         └─{audispd} 
          │        └─{auditd} 
          ├─avahi-daemon───avahi-daemon 
          ├─caribou───2*[{caribou}] 
          ├─cgrulesengd 
          ├─chronyd 
          ├─colord───2*[{colord}] 
          ├─crond 
          ├─cupsd

Pstree'den gelen toplam çıktı 100 satırı aşabilir. Genellikle, ps daha yararlı bilgiler verir.

top Komut

topLinux'ta performans sorunlarını giderirken en sık kullanılan komutlardan biridir. Linux'ta gerçek zamanlı istatistikler ve süreç izleme için kullanışlıdır. Aşağıdaki varsayılan çıkışı üst komut satırından konuyu açtığında.

Tasks: 170 total,   1 running, 169 sleeping,   0 stopped,   0 zombie 
%Cpu(s):  2.3 us,  2.0 sy,  0.0 ni, 95.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
KiB Mem :  1879668 total,   177020 free,   607544 used,  1095104 buff/cache 
KiB Swap:  3145724 total,  3145428 free,      296 used.  1034648 avail Mem 
 
PID    USER     PR   NI    VIRT     RES   SHR    S  %CPU  %MEM   TIME+   COMMAND
5404   root     20   0    197832   48024  6744   S   1.3   2.6  1:13.22   Xorg
8013   centos   20   0    555316   23104  13140  S   1.0   1.2  0:14.89   gnome-terminal-
6339   centos   20   0    332336   6016   3248   S   0.3   0.3  0:23.71   prlcc
6351   centos   20   0    21044    1532   1292   S   0.3   0.1  0:02.66   prlshprof

Top çalışırken kullanılan yaygın kısayol tuşları ( kısayol tuşlarına , top kabuğunuzda çalışırken tuşa basılarak erişilebilir).

Komut Aksiyon
b Üst menüde kalın vurgulamayı etkinleştirir / devre dışı bırakır
z Renk düzenini değiştirir
l Yük ortalama başlığını döndürür
m Hafıza ortalama başlığını döndürür
t Görev bilgileri başlığı
h Yardım menüsü
Üst Karakter + F Sıralama ve görüntüleme alanlarını özelleştirir

Aşağıda, top için ortak komut satırı anahtarları verilmiştir .

Komut Aksiyon
Sütuna göre sıralar (artan veya azalan düzende sıralamak için başına - veya + eklenebilir)
-u Yalnızca belirli bir kullanıcının işlemlerini gösterir
-d Gecikme süresini günceller üst
En üste sıralama uygulayabilen sütunların bir listesini verir

Üstteki sıralama seçenekleri ekranı, Shift + F kullanılarak sunulur . Bu ekran, en iyi görüntüleme ve sıralama seçeneklerinin özelleştirilmesine izin verir .

Fields Management for window 1:Def, whose current sort field is %MEM 
Navigate with Up/Dn, Right selects for move then <Enter> or Left commits, 
 'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!
 
* PID     = Process Id             TGID    = Thread Group Id      
* USER    = Effective User Name    ENVIRON = Environment vars     
* PR      = Priority               vMj     = Major Faults delta   
* NI      = Nice Value             vMn     = Minor Faults delta   
* VIRT    = Virtual Image (KiB)    USED    = Res+Swap Size (KiB)  
* RES     = Resident Size (KiB)    nsIPC   = IPC namespace Inode  
* SHR     = Shared Memory (KiB)    nsMNT   = MNT namespace Inode
* S       = Process Status         nsNET   = NET namespace Inode  
* %CPU    = CPU Usage              nsPID   = PID namespace Inode  
* %MEM    = Memory Usage (RES)     nsUSER  = USER namespace Inode 
* TIME+   = CPU Time, hundredths   nsUTS   = UTS namespace Inode  
* COMMAND = Command Name/Line 
PPID    = Parent Process pid
UID     = Effective User Id

üst , kullanıcı rdc için işlemleri gösterir ve bellek kullanımına göre sıralanır -

PID   USER  %MEM  PR  NI    VIRT    RES    SHR    S %CPU     TIME+    COMMAND
 6130  rdc    6.2  20   0  1349592  117160  33232  S  0.0   1:09.34    gnome-shell
 6449  rdc    3.4  20   0  1375872   64428  21400  S  0.0   0:00.43    evolution-calen
 6296  rdc    1.7  20   0  1081944   32140  22596  S  0.0   0:00.40    evolution-alarm
 6350  rdc    1.6  20   0   560728   29844   4256  S  0.0   0:10.16    prlsga
 6281  rdc    1.5  20   0  1027176   28808  17680  S  0.0   0:00.78    nautilus
 6158  rdc    1.5  20   0  1026956   28004  19072  S  0.0   0:00.20    gnome-shell-cal

Geçerli üst alanlar gösteriliyor (yoğunlaştırılmış) -

[centos@CentOS ~]$ top -O 
PID 
PPID 
UID 
USER 
RUID 
RUSER 
SUID 
SUSER 
GID 
GROUP 
PGRP 
TTY 
TPGID

Komutu öldür

killkomut, komut kabuğundaki bir işlemi PID'si aracılığıyla öldürmek için kullanılır. Ne zaman öldürme süreci, biz göndermek için bir sinyal belirtmek gerekir. Sinyal, çekirdeğin süreci nasıl bitirmek istediğimizi bilmesini sağlar. En sık kullanılan sinyaller -

  • SIGTERMÇekirdek bir sürece güvenli olduğu anda durması gerektiğini bildirdiği için ima edilir. SIGTERM , sürece zarif bir şekilde çıkma ve güvenli çıkış işlemleri yapma fırsatı verir.

  • SIGHUPçoğu arka plan programı SIGHUP gönderildiğinde yeniden başlayacaktır . Bu, genellikle bir yapılandırma dosyasında değişiklik yapıldığında işlemlerde kullanılır.

  • SIGKILLçünkü SIGTERM , bir işlemin kapatılmasını istemeye eşdeğerdir. Çekirdek, isteklere uymayan bir işlemi sonlandırma seçeneğine ihtiyaç duyar. Bir işlem askıya alındığında , işlemi açıkça kapatmak için SIGKILL seçeneği kullanılır.

Kill the -l seçeneği ile gönderilebilen tüm sinyallerin bir listesi için kullanılabilir -

[root@CentOS]# kill -l 
1) SIGHUP           2) SIGINT         3) SIGQUIT        4) SIGILL         5) SIGTRAP
6) SIGABRT          7) SIGBUS         8) SIGFPE         9) SIGKILL       10) SIGUSR1
11) SIGSEGV        12) SIGUSR2       13) SIGPIPE       14) SIGALRM       15) SIGTERM
16) SIGSTKFLT      17) SIGCHLD       18) SIGCONT       19) SIGSTOP       20) SIGTSTP
21) SIGTTIN        22) SIGTTOU       23) SIGURG        24) SIGXCPU       25) SIGXFSZ
26) SIGVTALRM      27) SIGPROF       28) SIGWINCH      29) SIGIO         30) SIGPWR
31) SIGSYS         34) SIGRTMIN      35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4     39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9     44) SIGRTMIN+10   45) SIGRTMIN+11   46) SIGRTMIN+12   47) SIGRTMIN+13 
48) SIGRTMIN+14    49) SIGRTMIN+15   50) SIGRTMAX-14   51) SIGRTMAX-13   52) SIGRTMAX-12 
53) SIGRTMAX-11    54) SIGRTMAX-10   55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6     59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1     64) SIGRTMAX

[root@CentOS rdc]#

Sistemi yeniden başlatmak için SIGHUP'ı kullanma .

[root@CentOS]# pgrep systemd 
1 
464 
500 
643 
15071

[root@CentOS]# kill -HUP 1

[root@CentOS]# pgrep systemd
1 
464 
500 
643 
15196 
15197 
15198

[root@CentOS]#

pkillyöneticinin işlem adına göre bir kill sinyali göndermesine izin verir .

[root@CentOS]# pgrep ping 
19450 
[root@CentOS]# pkill -9 ping 
[root@CentOS]# pgrep ping 
[root@CentOS]#

killalltüm süreçleri öldürecek. Killall'ı kök olarak kullanırken dikkatli olun , çünkü bu tüm kullanıcılar için tüm işlemleri öldürecektir.

[root@CentOS]# killall chrome

ücretsiz Komut

freegenellikle bir sistemin belleğini hızlıca kontrol etmek için kullanılan oldukça basit bir komuttur. Kullanılan fiziksel ve takas belleğinin toplam miktarını görüntüler.

[root@CentOS]# free 
             total       used      free      shared      buff/cache      available 
Mem:        1879668     526284    699796     10304        653588          1141412 
Swap:       3145724          0    3145724

[root@CentOS]#

güzel komut

nicebir yöneticinin CPU kullanımları açısından bir işlemin programlama önceliğini ayarlamasına izin verir. Güzellik, temelde çekirdeğin bir işlem veya iş için CPU zaman dilimlerini nasıl planlayacağıdır. Varsayılan olarak, işleme CPU kaynaklarına eşit erişim verildiği varsayılır.

İlk olarak, şu anda çalışan işlemlerin güzelliğini kontrol etmek için top'u kullanalım.

PID   USER   PR   NI    VIRT    RES    SHR   S  %CPU  %MEM     TIME+    COMMAND
28    root   39   19       0      0      0   S  0.0   0.0    0:00.17    khugepaged
690   root   39   19   16808   1396   1164   S  0.0   0.1    0:00.01    alsactl]
9598  rdc    39   19  980596  21904  10284   S  0.0   1.2    0:00.27    tracker-extract
9599  rdc    39   19  469876   9608   6980   S  0.0   0.5    0:00.04    tracker-miner-a
9609  rdc    39   19  636528  13172   8044   S  0.0   0.7    0:00.12    tracker-miner-f
9611  rdc    39   19  469620   8984   6496   S  0.0   0.5    0:00.02    tracker-miner-u
27    root   25    5       0      0      0   S  0.0   0.0    0:00.00    ksmd
637   rtkit  21    1  164648   1276   1068   S  0.0   0.1    0:00.11    rtkit-daemon
1     root   20    0  128096   6712   3964   S  0.3   0.4    0:03.57    systemd
2     root   20    0       0      0      0   S  0.0   0.0    0:00.01    kthreadd
3     root   20    0       0      0      0   S  0.0   0.0    0:00.50    ksoftirqd/0
7     root   20    0       0      0      0   S  0.0   0.0    0:00.00    migration/0
8     root   20    0       0      0      0   S  0.0   0.0    0:00.00    rcu_bh
9     root   20    0       0      0      0   S  0.0   0.0    0:02.07    rcu_sched

NI tarafından tasvir edilen NICE sütununa odaklanmak istiyoruz . Güzellik aralığı -20 ile pozitif 19 arasında herhangi bir yerde olabilir. -20, verilen en yüksek önceliği temsil eder.

nohup nice --20 ping www.google.com &

iyisin

renice , zaten çalışmakta olan bir işlemin mevcut önceliğini değiştirmemize izin verir.

renice 17 -p 30727

Yukarıdaki komut, ping işlemi komutumuzun önceliğini düşürecektir .