Linux基础:进程管理实时监控控制
1.后台运行作业
1.sleep 999 & (运行作业)
[root@localhost ~]# sleep 999 &
[1] 3670
2.ps -ef|grep sleep(查看进程)
[root@localhost ~]# ps -ef|grep sleep
root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3671 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3674 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3677 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3678 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3686 950 0 10:54 ? 00:00:00 sleep 60
3.fg(调最后一个)
[root@localhost ~]# fg
sleep 999
4.jobs(查看任务)
[root@localhost ~]# jobs
[1] sleep 999 &
[3] sleep 999 &
[4] sleep 999 &
[6]- sleep 999 &
[7]+ sleep 999
ctr1+z(Done)完成
5.说明
fg %N (调指定的任务)
stopped(停滞状态)
bg %3 (运行状态)
+(默认操作的)
-(第二个操作的)
1.sleep 999 & (运行作业) [root@localhost ~]# sleep 999 & [1] 3670 2.ps -ef|grep sleep(查看进程) [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3671 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3674 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3677 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3678 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3686 950 0 10:54 ? 00:00:00 sleep 60 3.fg(调最后一个) [root@localhost ~]# fg sleep 999 4.jobs(查看任务) [root@localhost ~]# jobs [1] sleep 999 & [3] sleep 999 & [4] sleep 999 & [6]- sleep 999 & [7]+ sleep 999 ctr1+z(Done)完成 5.说明 fg %N (调指定的任务) stopped(停滞状态) bg %3 (运行状态) +(默认操作的) -(第二个操作的)
2.使用信号控制进程
基本进程管理信号
信号编号ID | 短名称 | 定义名 | 用途 |
---|---|---|---|
1 | HUP | 挂起 | 让一个进程不用重启就可以重读配置文件,并让新的配置信息生效 |
2 | INT | 键盘中断 | 中断一个前台进程。ctrl+c就是用的SIGINT信号 |
9 | KILL | 中断,无法拦截 | 导致立即终止程序。无法被拦截、忽略或处理 |
15默认值 | TERM | 终止 | 导致程序终止。和SIGKILL不同,可以被拦截、忽略或处理。要求程序终止的友好方式,允许自我清理 |
kill命令根据ID向进程发送信号。虽其名称为kill,但该命令可用于发送任何信号,而不仅仅是终止程序的信号
1.查看进程 [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3901 950 0 10:59 ? 00:00:00 sleep 60 root 3904 3642 0 10:59 pts/1 00:00:00 grep --color=auto sleep 2.删除指定任务 [root@localhost ~]# kill %1 [root@localhost ~]# ps -ef|grep sleep root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3901 950 0 10:59 ? 00:00:00 sleep 60 root 3906 3642 0 11:00 pts/1 00:00:00 grep --color=auto sleep [1] sleep 999 3.kill -l(列出所有可以支持的程序) [root@localhost ~]# 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@localhost ~]# 4. kill 3672(删除进程) 查看进程 [root@localhost ~]# ps -ef|grep sleep root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3925 950 0 11:00 ? 00:00:00 sleep 60 root 4039 3642 0 11:00 pts/1 00:00:00 grep --color=auto sleep [root@localhost ~]# kill 3672 [root@localhost ~]# ps -ef|grep sleep root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3925 950 0 11:00 ? 00:00:00 sleep 60 root 4054 3642 0 11:01 pts/1 00:00:00 grep --color=auto sleep [3] sleep 99 5.killall sleep(删除所有sleep) 查看进程:[root@localhost ~]# ps -ef|grep sleep root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 4164 950 0 11:01 ? 00:00:00 sleep 60 root 4174 3642 0 11:01 pts/1 00:00:00 grep --color=auto sleep 成功删除[root@localhost ~]# ps -ef|grep sleep root 4185 3642 0 11:02 pts/1 00:00:00 grep --color=auto sleep
3.监控进程活动
IO负载
负载数属于全局计数器计算,是所有CPU的总和数。
由于从睡眠返回的任务可能会重新调度到不同的CPU,难以精确的每CPU计数,但累计数的准确度可以保障。
显示的平均负载代表所有的CPU。
显示负载值,实施监控
[root@localhost ~]# top
1.查看负载 [root@localhost ~]# uptime 11:12:36 up 45 min, 2 users, load average: 0.06, 0.01, 0.20 2.显示负载值,实施监控 [root@localhost ~]# top top - 11:15:03 up 47 min, 2 users, load average: 0.00, 0.00, 0.16 Tasks: 328 total, 1 running, 327 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st MiB Mem : 804.8 total, 67.5 free, 474.7 used, 262.5 buff/cache MiB Swap: 2048.0 total, 1427.5 free, 620.5 used. 196.8 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3884 root 20 0 0 0 0 I 0.3 0.0 0:00.57 kworker+ 4404 root 20 0 64856 4880 4008 R 0.3 0.6 0:00.17 top 1 root 20 0 245372 7252 4356 S 0.0 0.9 0:03.43 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par+ 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker+ 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_perc+ 9 root 20 0 0 0 0 S 0.0 0.0 0:00.24 ksoftir+ 10 root 20 0 0 0 0 I 0.0 0.0 0:00.35 rcu_sch+ 11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migrati+ 12 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdo+ 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmp+ 16 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungta+ 说明按m t l [root@localhost ~]# top 不显示 按1 显示cpu信息
4.实时进程监控
top用于实现全屏动态显示系统信息
//top命令交互式子命令:
M //根据驻留内存大小进行排序,默认根据CPU百分比排序
P //根据CPU使用百分比进行排序
T //根据累计时间(占据CPU时长)进行排序
l //是否显示平均负载和启动时间
t //是否显示进程和CPU状态相关信息
m //是否显示内存相关信息
c //是否显示完整的命令行信息
q //退出top命令
k //终止某个进程
1 //显示所有CPU的信息
s //修改刷新时间间隔
us //表示用户空间;
sy //表示内核空间;
ni //表示调整nice值,CPU占用的比率;
id //表示空闲百分比;
wa //表示等待IO完成所占据的时间百分比;
hi //表示hard interrupt,硬件中断占据的时间百分比;
si //表示软中断占据的时间百分比;
st //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机)
PR //优先级
NI //nice值
VIRT //虚拟内存集
RES //常驻内存集
SHR //共享内存大小
S //进程状态
1.后台运行作业
1.sleep 999 & (运行作业)
[root@localhost ~]# sleep 999 &
[1] 3670
2.ps -ef|grep sleep(查看进程)
[root@localhost ~]# ps -ef|grep sleep
root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3671 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3674 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3677 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3678 3642 0 10:54 pts/1 00:00:00 sleep 999
root 3686 950 0 10:54 ? 00:00:00 sleep 60
3.fg(调最后一个)
[root@localhost ~]# fg
sleep 999
4.jobs(查看任务)
[root@localhost ~]# jobs
[1] sleep 999 &
[3] sleep 999 &
[4] sleep 999 &
[6]- sleep 999 &
[7]+ sleep 999
ctr1+z(Done)完成
5.说明
fg %N (调指定的任务)
stopped(停滞状态)
bg %3 (运行状态)
+(默认操作的)
-(第二个操作的)
1.sleep 999 & (运行作业) [root@localhost ~]# sleep 999 & [1] 3670 2.ps -ef|grep sleep(查看进程) [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3671 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3674 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3677 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3678 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3686 950 0 10:54 ? 00:00:00 sleep 60 3.fg(调最后一个) [root@localhost ~]# fg sleep 999 4.jobs(查看任务) [root@localhost ~]# jobs [1] sleep 999 & [3] sleep 999 & [4] sleep 999 & [6]- sleep 999 & [7]+ sleep 999 ctr1+z(Done)完成 5.说明 fg %N (调指定的任务) stopped(停滞状态) bg %3 (运行状态) +(默认操作的) -(第二个操作的)
2.使用信号控制进程
基本进程管理信号
信号编号ID | 短名称 | 定义名 | 用途 |
---|---|---|---|
1 | HUP | 挂起 | 让一个进程不用重启就可以重读配置文件,并让新的配置信息生效 |
2 | INT | 键盘中断 | 中断一个前台进程。ctrl+c就是用的SIGINT信号 |
9 | KILL | 中断,无法拦截 | 导致立即终止程序。无法被拦截、忽略或处理 |
15默认值 | TERM | 终止 | 导致程序终止。和SIGKILL不同,可以被拦截、忽略或处理。要求程序终止的友好方式,允许自我清理 |
kill命令根据ID向进程发送信号。虽其名称为kill,但该命令可用于发送任何信号,而不仅仅是终止程序的信号
1.查看进程 [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3901 950 0 10:59 ? 00:00:00 sleep 60 root 3904 3642 0 10:59 pts/1 00:00:00 grep --color=auto sleep 2.删除指定任务 [root@localhost ~]# kill %1 [root@localhost ~]# ps -ef|grep sleep root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3901 950 0 10:59 ? 00:00:00 sleep 60 root 3906 3642 0 11:00 pts/1 00:00:00 grep --color=auto sleep [1] sleep 999 3.kill -l(列出所有可以支持的程序) [root@localhost ~]# 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@localhost ~]# 4. kill 3672(删除进程) 查看进程 [root@localhost ~]# ps -ef|grep sleep root 3672 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3925 950 0 11:00 ? 00:00:00 sleep 60 root 4039 3642 0 11:00 pts/1 00:00:00 grep --color=auto sleep [root@localhost ~]# kill 3672 [root@localhost ~]# ps -ef|grep sleep root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3925 950 0 11:00 ? 00:00:00 sleep 60 root 4054 3642 0 11:01 pts/1 00:00:00 grep --color=auto sleep [3] sleep 99 5.killall sleep(删除所有sleep) 查看进程:[root@localhost ~]# ps -ef|grep sleep root 3673 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3675 3642 0 10:54 pts/1 00:00:00 sleep 999 root 3676 3642 0 10:54 pts/1 00:00:00 sleep 999 root 4164 950 0 11:01 ? 00:00:00 sleep 60 root 4174 3642 0 11:01 pts/1 00:00:00 grep --color=auto sleep 成功删除[root@localhost ~]# ps -ef|grep sleep root 4185 3642 0 11:02 pts/1 00:00:00 grep --color=auto sleep
3.监控进程活动
IO负载
负载数属于全局计数器计算,是所有CPU的总和数。
由于从睡眠返回的任务可能会重新调度到不同的CPU,难以精确的每CPU计数,但累计数的准确度可以保障。
显示的平均负载代表所有的CPU。
显示负载值,实施监控
[root@localhost ~]# top
1.查看负载 [root@localhost ~]# uptime 11:12:36 up 45 min, 2 users, load average: 0.06, 0.01, 0.20 2.显示负载值,实施监控 [root@localhost ~]# top top - 11:15:03 up 47 min, 2 users, load average: 0.00, 0.00, 0.16 Tasks: 328 total, 1 running, 327 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st MiB Mem : 804.8 total, 67.5 free, 474.7 used, 262.5 buff/cache MiB Swap: 2048.0 total, 1427.5 free, 620.5 used. 196.8 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3884 root 20 0 0 0 0 I 0.3 0.0 0:00.57 kworker+ 4404 root 20 0 64856 4880 4008 R 0.3 0.6 0:00.17 top 1 root 20 0 245372 7252 4356 S 0.0 0.9 0:03.43 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par+ 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker+ 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_perc+ 9 root 20 0 0 0 0 S 0.0 0.0 0:00.24 ksoftir+ 10 root 20 0 0 0 0 I 0.0 0.0 0:00.35 rcu_sch+ 11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migrati+ 12 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdo+ 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmp+ 16 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungta+ 说明按m t l [root@localhost ~]# top 不显示 按1 显示cpu信息
4.实时进程监控
top用于实现全屏动态显示系统信息
//top命令交互式子命令:
M //根据驻留内存大小进行排序,默认根据CPU百分比排序
P //根据CPU使用百分比进行排序
T //根据累计时间(占据CPU时长)进行排序
l //是否显示平均负载和启动时间
t //是否显示进程和CPU状态相关信息
m //是否显示内存相关信息
c //是否显示完整的命令行信息
q //退出top命令
k //终止某个进程
1 //显示所有CPU的信息
s //修改刷新时间间隔
us //表示用户空间;
sy //表示内核空间;
ni //表示调整nice值,CPU占用的比率;
id //表示空闲百分比;
wa //表示等待IO完成所占据的时间百分比;
hi //表示hard interrupt,硬件中断占据的时间百分比;
si //表示软中断占据的时间百分比;
st //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机)
PR //优先级
NI //nice值
VIRT //虚拟内存集
RES //常驻内存集
SHR //共享内存大小
S //进程状态
以上就是Linux基础:进程管理实时监控控制的详细内容,更多关于Linux运维进程的资料请关注其它相关文章!