linux上的行程查看及管理工具:
pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall,,,
linux開機時,會啟動第一個行程,由這個行程去啟動別的行程,這個第一個行程在centos5,6,7上實作的都不一樣,
- centos5:Sysv init:串行通過腳本去啟動別的行程,速度慢
- centos6:upstart:參考ubuntu的upstart,并行啟動腳本,速度快
- centos7:systemd:參考mac啟動的程序,速度更快
這個第一個行程:/sbin/init
在centos7上執行pstree:可以看到父行程是systemd
# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─2*[VBoxClient───VBoxClient]
├─2*[VBoxClient───VBoxClient───{VBoxClient}]
├─VBoxClient───VBoxClient───2*[{VBoxClient}]
├─VBoxService───7*[{VBoxService}]
├─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}]
ps命令:顯示當前時間點行程的狀態
ps命令為什么能知道所有行程的狀態呢?我們知道行程是由內核管理的,每個行程對應內核來說,就是某個變數,內核把這個變數的資訊存放在/proc/行程ip/目錄下,ps命令就是讀這些目錄下的檔案,來取得所有行程的狀態的,
內核引數:linux哲學是一切皆檔案,所以內核引數也是檔案,
- 可設定其引數值,而改變內核的允許特性的引數存放在:/proc/sys目錄下,
- 狀態變數:用于保存內核中的所有行程的資訊,僅用于查看,存放在:/proc/行程id目錄下,
查看/proc/1下的檔案(也就是1號行程,也就是systemd行程),每個檔案存放的是內核引數的值
# pwd
/proc/1
# ls
attr cmdline environ io mem ns pagemap sched stack task
autogroup comm exe limits mountinfo numa_maps patch_state schedstat stat timers
auxv coredump_filter fd loginuid mounts oom_adj personality sessionid statm uid_map
cgroup cpuset fdinfo map_files mountstats oom_score projid_map setgroups status wchan
clear_refs cwd gid_map maps net oom_score_adj root smaps syscall
查看檔案comm的內容:發現是啟動1號行程的命令,
# cat comm
systemd
查看檔案maps的內容:
此行程使用的堆(heap)所占用的內容空間是:55f9ef4c6000-55f9ef643000
此行程使用的堆疊(stack)所占用的內容空間是:7ffd27f9e000-7ffd27fbf000
此行程使用的動態庫(/usr/lib64/ld-2.17.so)所占用的內容空間是:7f13ece84000-7f13ece85000
# cat maps
55f9ed91b000-55f9eda7c000 r-xp 00000000 fd:00 67757678 /usr/lib/systemd/systemd
55f9ef4c6000-55f9ef643000 rw-p 00000000 00:00 0 [heap]
7f13ea4ac000-7f13ea4b0000 r-xp 00000000 fd:00 33700674 /usr/lib64/libuuid.so.1.3.0
7f13ece84000-7f13ece85000 rw-p 00022000 fd:00 33637191 /usr/lib64/ld-2.17.so
7ffd27f9e000-7ffd27fbf000 rw-p 00000000 00:00 0 [stack]
直接用cat等命令去看檔案里的內容太累了,所以有了各種各樣的工具來幫助人去查看這些資訊,ps就是其中的一個,
行程啟動的方式:
- 系統啟動時,自動啟動的:與終端無關
- 用戶通過終端啟動:與終端有關
ps常用選項:
-
查看與終端有關的行程:a
TTY:終端設備號
TIME:占用cpu的時間總和
# ps a PID TTY STAT TIME COMMAND 5705 pts/0 Ss+ 0:00 bash 5901 pts/1 Ss+ 0:00 bash 5961 pts/2 Ss 0:00 bash 6062 pts/2 S 0:00 su - root 6073 pts/2 S+ 0:00 -bash 6171 pts/3 Ss 0:00 -bash 14173 pts/3 R+ 0:00 ps a -
查看與終端無關的行程:x
由于與終端無關,所以TTY出沒有終端設備號
COMMAND:這個行程是由那個程式啟動的,由中括號的,是內核啟動的執行緒
# ps x PID TTY STAT TIME COMMAND 2 ? S 0:00 [kthreadd] 3 ? S 0:00 [ksoftirqd/0] 5 ? S< 0:00 [kworker/0:0H] 3793 ? Ssl 0:00 /usr/sbin/libvirtd顯示所有行程:
ps ax -
以用戶的角度顯示行程的資訊:u
所有aux經常一起使用,顯示的結果是以列PID排序的,
USER:啟動行程的user
PID:行程號
%CPU:累計cpu使用時間
%MEM:使用記憶體比率
VSZ:占用的虛擬記憶體大小
RSS:常駐記憶體大小(不能放到swap和磁盤上的關鍵內容)
STAT:行程的狀態
-
R:running(運行中)
-
S:interruptable sleeping(休眠中,但可以被喚醒)
-
D:unterruptable sleeping(休眠中,但不可以被喚醒)
-
T:Stoped(停止了)
-
Z:zombie(僵尸行程,父親行程沒有回收它),
-
+:前臺行程
-
l:啟動了多執行緒的行程
-
N:低優先級行程
-
<:高優先級行程
-
s:session leader:在bash里運行了很多別的執行緒,所有bash就成了session leader;所以只要結束了session leader行程,則在它里面啟動的行程就全被結束掉,
Ss 08:05 0:00 -bash
START:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 128272 6928 ? Ss 08:00 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0.0 0.0 0 0 ? S 08:00 0:00 [kthreadd] root 13 0.0 0.0 0 0 ? S 08:00 0:00 [kdevtmpfs] root 14 0.0 0.0 0 0 ? S< 08:00 0:00 [netns] root 15 0.0 0.0 0 0 ? S 08:00 0:00 [khungtaskd] dbus 3048 0.0 0.1 70204 4328 ? Ssl 08:00 0:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation rpc 3049 0.0 0.0 73648 1380 ? Ss 08:00 0:00 /sbin/rpcbind -w avahi 3068 0.0 0.0 62144 400 ? S 08:00 0:00 avahi-daemon: chroot helper libstor+ 3069 0.0 0.0 8576 824 ? Ss 08:00 0:00 /usr/bin/lsmd -d ys 4771 0.0 0.0 317316 3880 ? Sl 08:01 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login gdm 4779 0.0 0.1 452196 4236 ? Sl 08:01 0:00 ibus-daemon --xim --panel disable gdm 4782 0.0 0.0 375868 3524 ? Sl 08:01 0:00 /usr/libexec/ibus-dconf ys 4788 0.0 0.2 818940 9444 ? Ssl 08:01 0:00 /usr/libexec/gnome-session-binary --session gnome-classic gdm 4789 0.0 0.3 464772 13420 ? Sl 08:01 0:00 /usr/libexec/ibus-x11 --kill-daemon ys 4804 0.0 0.0 59024 968 ? S 08:01 0:00 dbus-launch --sh-syntax --exit-with-session -
-
顯示所有行程:-e
帶-的是BSD風格的選項,不帶-的是UNIX的風格,
# ps -e PID TTY TIME CMD 1 ? 00:00:03 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:00:00 migration/0和-e一起使用的還有-f:顯示詳細資訊
PPID:父行程
C:CPU占用的百分比
STIME:運行啟動的時間
TIME:累計CPU運行時間
# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 08:00 ? 00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 08:00 ? 00:00:00 [kthreadd]還有個-F和-f類似
PSR:運行在那個cpu核心上,
# ps -eF UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 1 0 0 32068 6928 0 08:00 ? 00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize root 2 0 0 0 0 0 08:00 ? 00:00:00 [kthreadd] root 3 2 0 0 0 0 08:00 ? 00:00:00 [ksoftirqd/0]按父,子行程層級方式顯示:-H
# ps -eFH UID PID PPID C SZ RSS PSR STIME TTY TIME CMD gdm 4779 1 0 113049 4236 0 08:01 ? 00:00:00 ibus-daemon --xim --panel disable gdm 4782 4779 0 93967 3524 0 08:01 ? 00:00:00 /usr/libexec/ibus-dconf -
自定義要顯示的列,列于列之間用逗號分隔:o
# ps axo pid,command PID COMMAND 1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22BSD風格:ps -eo
# ps -eo pid,command | head -3 PID COMMAND 1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 [kthreadd]常用列:pid,ni(nice),priority(優先級),psr(運行在哪個核心上),pcpu(cpu的利用率),stat(狀態),comm(啟動的程式),tty(跟哪個終端相關),ppid(父行程id),rtprio(實時優先級)
nice:取值是-20到19,值越小優先級越高,作用是把自己的優先級降低(普通用戶不能提高自己的優先級),讓別的行程先執行,很禮讓,所有叫nice,但管理員可以提高行程的優先級,
pgrep,pkill命令
pgrep:根據行程的各個列的值,挑選出想查看哪些行程的資訊,
pkill:根據行程的各個列的值,挑選出想給哪些行程發信號,
常用選項:
-
根據effictive user去查看行程:-u uid(或者用戶名)
-
根據實際user去查看行程:-U uid(或者用戶名)
# pgrep -U postfix 4322 14862 # id postfix uid=89(postfix) gid=89(postfix) groups=89(postfix),12(mail) # pgrep -U 89 4322 14862 # pgrep -u postfix 4322 14862 [root@localhost 1]# pgrep -u 89 4322 14862 -
根據terminal查看行程:-t
-
顯示行程名:-l
# pgrep -lU postfix 4322 qmgr 14862 pickup -
顯示完整格式的行程名:-a
# pgrep -aU postfix 4322 qmgr -l -t unix -u 14862 pickup -l -t unix -u -
顯示其行程號下面的子行程:-P
root 3781 1 0 28189 4312 0 08:01 ? 00:00:00 /usr/sbin/sshd -D root 6163 3781 0 41301 6116 0 08:05 ? 00:00:00 sshd: root@pts/3 # pgrep -aP 3781 6163 sshd: root@pts/3 -
根據字串去查看ps出來的結果:
ps key查看有【ssh】字樣的行程,
# pgrep ssh -a 3781 /usr/sbin/sshd -D 5023 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic" 6163 sshd: root@pts/3ps nginx;ps httpd等
pidof命令
根據行程名字,找到pid,
# pidof sshd
6163 3781
top命令
類似windows的任務查看器,動態變化,
不帶引數top,是按CPU列逆序排序,占用cpu最高的行程在最上面,
# top
top - 15:55:33(當前時間) up 7:54(運行時長), 5 users(登錄的用戶數), load average(平均負載,等待運行的佇列長度): 0.00(1分鐘), 0.01(5分鐘), 0.05(15分鐘)
Tasks(多少個行程): 231 total, 3 running, 228 sleeping, 0 stopped, 0 zombie
%Cpu(s)(cpu占用百分比): 0.3 us(用戶空間的行程占cpu的百分比), 0.7 sy(內核空間的行程占cpu的百分比), 0.0 ni(調整nice的百分比), 99.0 id(空閑百分比), 0.0 wa(等待io的百分比), 0.0 hi(處理硬體終端的百分比), 0.0 si(處理軟體終端的百分比), 0.0 st(被虛擬化軟體行程偷走的百分比)
KiB Mem(物理記憶體) : 3880620 total, 2183580 free, 737500 used, 959540 buff/cache(緩沖/快取)
KiB Swap(交換磁區): 4063228 total, 4063228 free, 0 used. 2813008 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5078 ys 20 0 3025948 199132 68308 R 1.7 5.1 10:32.60 gnome-shell
1524 root 20 0 0 0 0 S 0.3 0.0 0:10.56 xfsaild/dm-0
uptime命令能顯示top命令結果的第一行:
# uptime
16:38:27 up 8:37, 5 users, load average: 0.07, 0.04, 0.05
VIRT:虛擬記憶體集;RES:常駐記憶體集;SHR:共享記憶體空間;S:當前狀態;TIME+:運行時長
默認是按照%CPU列逆序排序的,可以改變排序的列:
- 按記憶體排序:互動輸入M
- 按CPU排序:互動輸入T
- 按執行時長排序:互動輸入T
在TOP執行時,可以互動輸入的命令串列:
h:顯示幫助
l,t,m :顯示/非顯示第一行,第二行,第三行
d or s:調整重繪間隔
k:殺死指定的行程
q:退出top
Z,B,E,e Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
l,t,m Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
f,F,X Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width
L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
x,y . Toggle highlights: 'x' sort field; 'y' running tasks
z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
n,#,^O . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
C,... . Toggle scroll coordinates msg for: up,down,left,right,home,end
k,r Manipulate tasks: 'k' kill; 'r' renice
d or s Set update interval
W,Y Write configuration file 'W'; Inspect other output 'Y'
q Quit
top命令的常用選項:
- 指定重繪時間的間隔:-d #
- 以批次方式顯示:-b
- 顯示多少批次后就退出top命令:-n #
以批次方式顯示,顯示2批次后,自動退出top,重繪間隔是1秒,
# top -b -n 2 -d 1
htop命令
top命令的升級版,在默認repo里沒有,在epel里,
-
選項和top基本相同,
-
子命令:大部分和top相同,下面幾個是htop獨有的,
F1獲取子命令的幫助資訊,
- 查看某個行程打開的所有檔案:l(小寫L)
- 查看某個行程發起的系統呼叫都有哪些:s
- 此父子層級方式顯示:t或F5
- 將選定的行程系結到某幾個cpu核心上:a,(行程默認是可以運行在任意核心上的)
vmstat命令
vmstat [options][delay [count]]
查看記憶體的統計資料
delay:控制每幾秒種顯示一次
count:顯示幾次
每2秒種顯示一次,一共顯示3次:
# vmstat 2 3
查看一次就退出:
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 2254396 3148 954228 0 0 145 16 88 90 1 1 98 0 0
procs:行程個數
- r:等待運行的行程個數;cpu上等待運行的任務佇列的長度
- b:處于不可中斷睡眠狀態的行程的個數;被阻塞的任務佇列的長度,
memory:
- swpd:交換記憶體的使用量,這里如果是0,說明物理記憶體夠用,說明處于健康狀態;如果這里的值過大,就說明物理記憶體嚴重不足,spwd是利用磁盤模擬記憶體,所以速度非常慢,
- free:空閑的物理記憶體總量,
- buff:用于buffer的記憶體總量
- cache:用于cache的記憶體總量
swap:
- si:資料從物理記憶體進入swap的速率(單位:kb/s)
- so:資料從swap離開,回傳到物理記憶體的速率(單位:kb/s)
可以通過swpd和swap的so來判斷當前物理記憶體是否夠用:如果swpd里有值,而且so的值很大,則說明物理記憶體不夠,頻繁需要從swap換進換出;如果swpd里有值,而so的值不大,則還可以忍受,
io:
- bi:從塊設備讀入系統的速率(單位:kb/s)
- bo:保存資料到塊設備的速率(單位:kb/s)
system:
- in:interrupts,中斷產生的速率(每秒產生多少個中斷)
- cs:context switch:行程來回切換的速率,如果此值過萬,則說明要運行的行程過多,cpu處理不過來了,需要加cpu,
cpu:
- us(user space):用戶空間的行程使用cpu的百分比
- sy(system): 內核空間的行程使用cpu的百分比
- id(idle): cpu處于空閑時間的百分比
- wa(wait): 等待io完成的cpu百分比
- st(stolen):被虛擬化技術偷走的時間百分比
常用選項:
-
查看記憶體使用的匯總資訊:-s
# vmstat -s 3880164 K total memory 707772 K used memory 861212 K active memory 523236 K inactive memory 2164936 K free memory 3148 K buffer memory 1004308 K swap cache 4063228 K total swap 0 K used swap 4063228 K free swap 4633 non-nice user cpu ticks 3335 nice user cpu ticks 4878 system cpu ticks 1343696 idle cpu ticks 576 IO-wait cpu ticks 0 IRQ cpu ticks 353 softirq cpu ticks 0 stolen cpu ticks 941197 pages paged in 112819 pages paged out 0 pages swapped in 0 pages swapped out 763048 interrupts 860345 CPU context switches 1582090142 boot time 17373 forks
pmap命令
顯示指定行程的記憶體映射表
pmap [options] pid [...]
pmap pid=cat /proc/pid/maps
常用選項:
-
顯示詳細資訊:-x
RSS:常駐記憶體大小
Dirty:臟資料大小
Mode:讀,寫,執行的權限
# pmap -x 1 1: /usr/lib/systemd/systemd --switched-root --system --deserialize 22 Address Kbytes RSS Dirty Mode Mapping 000055bb2ebd1000 1412 1168 0 r-x-- systemd 000055bb2ef31000 140 132 132 r---- systemd 000055bb2ef54000 4 4 4 rw--- systemd 000055bb2f8fb000 1520 1464 1464 rw--- [ anon ] 00007f173c000000 164 12 12 rw--- [ anon ] 00007f173c029000 65372 0 0 ----- [ anon ] 00007f1744000000 164 12 12 rw--- [ anon ] 00007f1744029000 65372 0 0 ----- [ anon ] 00007f174aeb2000 4 0 0 ----- [ anon ] 00007f174aeb3000 8192 8 8 rw--- [ anon ] 00007f174b6b3000 4 0 0 ----- [ anon ] 00007f174b6b4000 9024 840 840 rw--- [ anon ] 00007f174c11c000 16 8 0 r-x-- libuuid.so.1.3.0 00007f174c120000 2044 0 0 ----- libuuid.so.1.3.0
glances命令
用python研發的命令,在base倉庫里沒有,在epel里,
和top和htop差不多,
特點是支持c/s模式:可以在沒有server的登錄用戶時,使用這種方式,監視server的各種資訊,
server端:glances -s -B 本機某個網卡的ip地址
client端:glances -c 服務器的ip地址
dstat命令
需要安裝,在base倉庫里,
功能很強大,上面命令能查看的,dstat基本都能查看,
# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
不使用任何引數就是使用:-cdngy
c:total-cpu-usage;d:dsk/total;n:net/total;g:paging;y:system
-
查看tcp各種狀態下的連接的數量:
# dstat --tcp ----tcp-sockets---- lis act syn tim clo 13 1 0 0 0 -
查看最消耗cpu的行程是誰:--top-cpu
# dstat --top-cpu -most-expensive- cpu process VBoxClient 0.0 VBoxlient 0.2 -
查看最消耗磁盤io的行程是誰:--top-bio
# dstat --top-bio ----most-expensive---- block i/o process systemd 36k 18k -
查看最消耗記憶體的行程是誰:--top-mem
# dstat --top-mem --most-expensive- memory process gnome-shell 192M -
延遲最大的行程是誰:--top-latency
# dstat --top-latency --highest-total-- latency process rcu_sched 292 ksoftirqd/2 9115 -
還有很多類似--top-xxx的選項
-
--tcp,--udp,--raw,--socket,--ipc
kill命令
給行程發送信號,
有3種辦法標識信號:
? 1,信號的數字標識
? 2,信號的完整名稱:SIGHUP
? 3,信號的簡寫名稱:HUP
-
查看有哪些信號:-l
# 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 # kill -l 1 HUP # kill -l 2 INT -
發送信號方法:
# kill -1 pid # kill -SIGHUP pid # kill -HUP pid -
常用信號解釋:
1)SIGHUP:無需關閉行程,讓其從新讀組態檔
2)SIGINT:終止正在運行的行程,相當于ctrl+c
9)SIGKILL:立即無條件終止正在運行的行程
15)SIGTERM:終止正在運行的行程,(行程打開的檔案描述符等,關閉后,在結束自己)
18)SIGCONT:讓后臺運行的行程,回到前臺運行,
19)SIGSTOP:讓前臺的行程去后臺運行,
killall命令
根據行程的名字,終止行程,所以符合名字的行程都會被終止,
# killall httpd
調整行程運行的優先級
通過調整行程的nice值調整行程的優先級,只要管理員能調低nice值,
nice:取值是-20到19,值越小優先級越高,
用戶空間的行程的優先級范圍是:100139,對應nice值-2019,也就是說nice為-20的行程的優先級是100,優先級數字越小則越優先,niec值越小則越優先,
行程啟動時,nice值是0,所以優先級是120.可以在啟動時修改行程的nice值:
顯示的15,其實是115,把前面的1省略了,
# nice -n -5 htop
# ps axo pid,priority,ni,comm | grep 344
344 15 -5 htop
行程啟動后,也可以修改其nice:renice -n NICE pid ...
顯示的20,其實是120,把前面的1省略了,
# ps axo pid,priority,ni,comm | grep 344
344 15 -5 htop
# renice -n 0 344
344 (process ID) old priority -5, new priority 0
# ps axo pid,priority,ni,comm | grep 344
344 20 0 htop
Linux 系統作業控制
系統作業也叫job,
前臺作業:通過終端啟動,且啟動后一直占據終端,
后臺作業:可以通過終端啟動,但啟動后轉入后臺運行,釋放終端,
那么如何讓作業,轉入后臺呢?
-
運行中的作業:輸入ctrl+z之后,作業轉入后臺,但不是運行狀態,而是停止狀態,
-
尚未啟動的作業:
command &這種方法雖然能讓作業進入后臺運行,但依然依附于終端,一旦終端被終止,它也被終止了,
-
尚未啟動的作業:
nohup command &讓作業進入后臺運行,且脫離終端,即使終端被終止,它也不會被終止,
查看后臺的所有作業:jobs
那么如何讓轉入后臺的作業,回傳到前臺終端呢?
fg 作業號,就讓指定的作業號的作業恢復到前臺運行,
直接執行fg,則是讓有加號的作業恢復到前臺執行
# jobs
[1] Stopped htop
[2]- Stopped top
[3]+ Stopped dstat
# fg 1#回復htop命令到前臺執行
-
終止指定的作業:
kill %作業號注意必須有%號
# kill %3 [3]+ Stopped dstat # jobs [1] Stopped htop [2]- Stopped top [3]+ Terminated dstat
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/139397.html
標籤:Linux
上一篇:linux中網路命令
下一篇:Linux 網路客戶端工具
