目录

一、进程

1.1、进程ID

1.2、列出进程

1.3、进程前后台

二、使用信号控制进程

三、以管理员身份注销用户(踢掉在线用户)

四、监控进程活动

4.1、负载平均值

4.2、实时进程监控


进程是已启动的可执行程序的运行中的实力。它由以下部分组成:已分配内存的地址空间、安全属性(爆款所有权凭据和特权)、程序代码的一个或多个执行线程、进程状态。通俗来讲,进程就是在系统发生的某一件事情。

一、进程

1.1、进程ID

每个新进程分配到一个唯一的进程D(PID)以满足跟踪和安全的需要,父级进程ID是PPID。通过对PID的管理,来实现对某个进程的管理。所有进程都是第一个系统进程的后代,在RHEL7里面,第一个系统进程是systemd。

1.2、列出进程

ps命令用于静态列出当前的进程,ps -ef 或 ps aux 或ps lax。top命令用于动态列出进程。

或者用命令 pstree以树状结构列出进程。

1.3、进程前后台

从特定终端窗口中读取输入和键盘生成的信号,这就是前台进程。后台进程是与该终端相关联的任何其他作业的成员,终端的后台进程无法从终端读取输入或接收键盘生成的中断,但是可以写入终端(输出到屏幕)。ps命令在TTY列中显示进程的控制终端的设备名称。某些进程(如系统守护进程)是由系统启动的,并不是从shell提示符启动的,这些进程没有控制终端,无法转至前台,这些进程的TTY列会显示一个问号“?”。

任何命令都可以在后台启动,只需要在命令结尾附加“&”符号即可。回显是作业编号和PID。

命令jobs可以查看后台作业。

fg命令和PID(%加上作业编号)将该作业转至前台。

要将前台进程发送到后台,按Ctrl+z暂停即可。该作业将立即置于后台并暂停。

bg命令和PID(%加上作业编号)可以启动在后台运行且已经暂停的进程。

我们以ping命令为例,执行ping server0 > a & 回显作业编号为1。打开另一个中断用tail -f  a查看是否在ping。用ps aux | grep ping来查看后台ping的状态。用fg %1让ping转移到前台。Ctrl + z暂停并转移到后台,job查看后台作业,注意查看a文件是否还继续写入ping的回显。再用bg %1启动ping,注意查看a文件是否还继续写入ping的回显。

[root@server0 ~]# tail -f a
^C
[root@server0 ~]# ping server0 > a &
[1] 2201
[root@server0 ~]# ps aux | grep ping
root      2201  0.0  0.0 120700  1052 pts/1    S    11:31   0:00 ping server0
root      2211  0.0  0.0 112640   936 pts/1    S+   11:31   0:00 grep --color=auto ping
[root@server0 ~]# fg %1
ping server0 > a
^Z
[1]+  Stopped                 ping server0 > a
[root@server0 ~]# ps aux | grep ping
root      2201  0.0  0.0 120700  1052 pts/1    T    11:31   0:00 ping server0
root      2213  0.0  0.0 112640   936 pts/1    R+   11:32   0:00 grep --color=auto ping
[root@server0 ~]#
[root@server0 ~]# jobs
[1]+  Stopped                 ping server0 > a
[root@server0 ~]# bg %1
[1]+ ping server0 > a &
[root@server0 ~]# fg %1
ping server0 > a
^C[root@server0 ~]#

二、使用信号控制进程

信号是传递至进程的软件中断。系统管理员用于管理进程的基本信号如下,注意信号编号随硬件平台不同而有差别,但是名称和定义都已经标准化,使用时建议使用短名称而不是编号。这里列出的编号适用于x86。

 信号编号 短名称 定义 目的
1 HUP 挂起

用于报告终端控制进程的终止。

也用于请求进程重新初始化而不终止。

相当于systemctl reload sshd.service,优点:不会中断,进程号不会变。

2 INT 键盘中断 程序终止。通过Ctrl+c发送。
3 QUIT 键盘退出 程序终止,但生成进程转储。通过Ctrl+\发送。
9 KILL 中断、无法拦截 立即终止程序。一棒子打死!
15(默认值) TERM 终止 立即程序终止。友好方式,允许自我清理。
18 CONT 继续 发送至进程使其恢复(若已经停止)
19 STOP 停止、无法拦截 暂停进程。无法被拦截或处理。
20 TSTP 键盘停止

暂停进程,可以被拦截、忽略或处理。通过Ctrl+z发送。

用户可以向当前的前台进程发送信号,具体为暂停Ctrl+z、中止Ctrl+c、核心转储Ctrl+\。

用户向后台进程或另一个会话中的进程发送信号,需要使用信号发送命令。用户可以中断自己的进程,root特权可以终止其他人的进程。

kill命令根据ID向进程发送信号,用法是kill -signal PID 查看有多少种signal用kill -l。虽然命令名字叫kill,但是不是只能杀死进程,kill可以发送任何信号!

验证的方法也是 ping server0 > a &,然后查看一下后台的PID(本例PID是),然后tail -f a看进程是否进行。然后用kill -signal PID来控制后台进程的暂停、继续、终止。

[root@server0 ~]# ping server0 > a &
[1] 2586
[root@server0 ~]# kill -l1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP6) 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@server0 ~]# kill -SIGSTOP 2586
[root@server0 ~]# kill -SIGCONT 2586[1]+  Stopped                 ping server0 > a
[root@server0 ~]# kill -SIGTERM 2586
[root@server0 ~]# kill -SIGCONT 2586
-bash: kill: (2586) - No such process
[1]+  Terminated              ping server0 > a

三、以管理员身份注销用户(踢掉在线用户)

w命令可以查看当前登录系统的用户,以及他们积累的活动。通过TTY和FROM列确定用户的位置。

所有用户都有一个控制终端,其列为pts/N(在图形环境窗口(伪终端)中操作时),而通过系统控制台、替代控制台或其他直接连接的终端设备操作时则列为ttyN。使用 w -f 选项时,远程用户在FROM列中显示其连接系统名称。如图,共有3个终端以root身份登录server0和一个终端以student身份登录server0,就有了pts/0、pts/1、pts/2和tty1。还可以看到是什么时间登录、空闲多久、shell执行的是什么命令。

我们可以通过pgrep -l -u username来查看某个用户的进程。当不需要终端用户所有进程时,用w命令确定会话的控制终端,然后仅终端应用同一终端ID的进程。除非指定SIGLILL,否则会话首进程(bash)可以成功处理终止并保留,但其他会话进程被终止。

[root@server0 ~]# pgrep -l -u student
7921 sshd
7922 bash
7965 ping
[root@server0 ~]# w -u student12:42:48 up  1:56,  3 users,  load average: 0.01, 0.08, 0.12
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
student  pts/1     12:41   40.00s  0.06s  0.02s ping server0 -c 100
[root@server0 ~]# pkill -t pts/1
[root@server0 ~]# pgrep -l -u student
7921 sshd
7922 bash
[root@server0 ~]# pkill -SIGKILL -t pts/1
[root@server0 ~]# pgrep -l -u student
[root@server0 ~]#

四、监控进程活动

4.1、负载平均值

查看有CPU的内核表示,可以求出CPU核数。uptime命令可以显示负载平均值。将显示的负载平均值初一系统中逻辑CPU数(核数)。值低于1表示资源利用率较好,等待时间短。值高于1表示资源饱和,有一定的服务等待时间。

[root@server0 ~]# grep "model name" /proc/cpuinfo
model name      : QEMU Virtual CPU version 1.5.3
[root@server0 ~]# grep "model name" /proc/cpuinfo | wc -l
1
[root@server0 ~]# uptime14:15:40 up  1:22,  2 users,  load average: 0.00, 0.01, 0.05

4.2、实时进程监控

top是系统进程的动态视图。默认输出列可以从其他资源工具识别:

  • 进程ID(PID)
  • 用户名称(USER)
  • 虚拟内存(VIRT对应ps命令的VSZ)
  • 常驻内存(RES对应ps命令的RSS)
  • 进程状态(S,D=不可中断睡眠,R=运行中或可运行,S=睡眠中,T=已停止,Z=僵停)
  • CPU时间(TIME)
  • 进程命令名称(COMMAND)

top命令中还可以继续输入命令来操作

按键 目的
?或 h 交互式击键操作的帮助。
l、t、m 切换到负载、线程、内存标题行。
s 更改刷新率,以带小数的秒表示(如0.5、1、2.6)。安全模式下不可用
b 切换方向突出显示运行中的进程;默认仅为粗体。
B 在显示中使用粗体,用于标题以及运行中的进程。
H 切换线程;显示进程摘要或单独线程。
u、U 过滤用户名。
M 按照内存使用率,以降序方式对进程列表排序。
P 按照处理器使用率,,以降序方式对进程列表排序。
k 中断进程。若有提示,输入PID,再输入signal
r 调整进程的nice值。若有提示,输入PID,再输入nice_value。
W 写入当前显示配置,以便在下一次启动top时使用。
q 退出

Linux05-进程管理相关推荐

  1. 操作系统学习笔记 第二章:进程管理(王道考研)

    本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系统概述 ...

  2. C++ Windows进程管理

    功能: 1.各个进程启动.挂起.恢复.停止等 2.监听进程的运行状态,进程退出(正常.非正常)时,通知用户 3.异步队列 4.线程安全 进程管理器类: #ifndef __ProcessManager ...

  3. php 进程管理,php如何管理进程

    进程管理-防止进程成为僵尸进程 创建好了进程,那么怎么对子进程进行管理呢? 使用信号,对子进程的管理,一般有两种情况:(推荐学习:PHP编程从入门到精通) posix_kill():此函数并不能顾名思 ...

  4. 《Linux内核设计与实现》读书笔记 第三章 进程管理

    第三章进程管理 进程是Unix操作系统抽象概念中最基本的一种.我们拥有操作系统就是为了运行用户程序,因此,进程管理就是所有操作系统的心脏所在. 3.1进程 概念: 进程:处于执行期的程序.但不仅局限于 ...

  5. systemd进程管理工具实战教程

    systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理.   ...

  6. Linux进程管理 (7)实时调度

    关键词:RT.preempt_count.RT patch. 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略.本章只是一个简单的介绍. 更详细的介绍参考<Linux进 ...

  7. boost:进程管理

    概述 Boost.Process提供了一个灵活的C++ 进程管理框架.它允许C++ developer可以像Java和.Net程序developer那样管理进程.它还提供了管理当前执行进程上下文.创建 ...

  8. php 脚本 fpm缓存,PHP生命周期及fpm(FastCGI进程管理器)的运作方式

    PHP在web方式中如何改了文件就立即生效的,重要的几个概念:sapi: 可以简单的理解为php引擎对外的一个统一接口,使得php可以和外部程序进行交互 php的生命周期中关键四个调用: MINT - ...

  9. linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp

    linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...

  10. Linux进程及进程管理命令

    Linux进程基础 1进程概念 1.1程序与进程 1.2进程的状态 1.3线程 1.4进程生命周期 1.5虚拟内存 2进程管理工具 2.1pstree 2.2ps 2.3pgrep 2.4kill.p ...

最新文章

  1. HTTP请求过程详解
  2. 《青春飞扬》诗集出版历程与思考分享 之三:游记、感悟与思考
  3. junit jumpstart
  4. python文件指针_在使用python写入文件之前,如何将文件指针放在上面一行?
  5. openlayers入门开发系列之地图属性查询篇
  6. python打包成.exe程序
  7. 遭央视曝光的“AI算命”,背后竟然隐藏了一个价值千亿的市场!?
  8. 如何将Java应用程序置于Apache HTTP服务器之后
  9. sublime text 2快捷键总结
  10. 艾伟:如何实现用返回值重载
  11. python爬虫代码-Python爬虫教程:200行代码实现一个滑动验证码
  12. MyEclipse6.5的反编译插件的安装
  13. 苹果mac视觉效果和动态图形设计软件:After Effects 2022 (ae 2022)
  14. delphi中的Format函数详解
  15. 用函数调用的方法输出乘法口诀表
  16. numpy系列之拷贝和视图
  17. 惠普z800工作站bios设置_HP工作站 BIOS说明 适用Z228 Z440 Z230 Z640 Z840 Z800 Z620 Z420 Z820主板设置 -...
  18. mybais学习记录一——入门程序
  19. html 的smap标签,SMap.Label
  20. 【转】那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程

热门文章

  1. 【spring】p命名空间的使用
  2. springboot 读取配置文件内容的几种方式
  3. SQL查询1064报错 [ERR] 1064 - You have an error in your SQL syntax; check the manual.......
  4. uni-app 音频控制
  5. iOS开发之 - 好玩的富文本
  6. vue中的时间过滤器
  7. Python安装及netcdf数据读写
  8. Windows和linux双系统——改动默认启动顺序
  9. cCodeforces Round #286 (Div. 2)
  10. CentOS 5 升级mysql5.1启动服务时报错