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 .