linux 系统如何管理进程?

发布时间:
2024-09-01 21:24
阅读量:
37

今天给伙伴们分享一下Linux 系统进程管理,希望看了有所收获。

我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!
如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。

一、作业管理

1、jobs 命令查看后台作业

语法格式: jobs [参数]

常用参数:

  • -l 显示作业列表及进程号
  • -n 仅显示自发生变化的作业
  • -p 仅显示其对应的进程号
  • -r 仅显示运行的作业
  • -s 仅显示暂停的作业
  • -x 替代原有作业的进程ID

参考示例

显示当前后台的作业列表: [root@edenluo.com ~]# jobs 显示当前后台的作业列表及进程号: [root@edenluo.com ~]# jobs -l 仅显示运行的后台作业: [root@edenluo.com ~]# jobs -r 仅显示已暂停的后台作业: [root@edenluo.com ~]# jobs -s 仅显示自上次执行jobs命令后状态又发生变化的后台作业: [root@edenluo.com ~]# jobs -n

2、fg 将作业放到前台运行

  • 语法格式:fg [参数] 作业标识

将指定编号标识的作业放回到终端前台继续运行:

[root@edenluo.com ~]# fg 1

3、bg 在后台暂停的作业放到后台运行(启动后台暂停的作业)

  • 语法格式:bg [参数]

将指定标识的任务放到后台继续执行:

[root@edenluo.com ~]# bg 1

扩展知识:执行指定任务,并将其放到后台执行:

[root@edenluo.com ~]# tar czvf File.tar.gz /Dir/www &

二、进程控制

1、关闭进程

  • 关闭进程3个命令:kill killall pkill
    • kill关闭进程:kill 进程号 关闭单个进程
    • killall和pkill 命令用于杀死指定名字的进程


  • 通过信号的方式来控制进程的
  • kill -l => 列出所有支持的信号(了解) 用最多的是:9 信号



  • 信号编号 信号名

1) SIGHUP 重新加载配置 2) SIGINT 键盘中断 3) SIGQUIT 退出 9) SIGKILL 强制终止 crtl+c 15)SIGTERM 终止(正常结束),缺省信号 18)SIGCONT 继续 19)SIGSTOP 停止 20)SIGTSTP 暂停 crtl+z

  • kill和killall终止进程

[root@edenluo.com ~]# yum -y install psmisc ​ [root@edenluo.com ~]# kill 信号(signal) pid [root@edenluo.com ~]# kill -HUP pid 观察pid的变化 [root@edenluo.com ~]# kill -STOP pid systemctl status nginx ​ [root@edenluo.com ~]# kill -9 pid 用kill 解决不了的,再用kill -9 ​ [root@edenluo.com ~]# killall 信号 进程名称 [root@edenluo.com ~]# killall vim ​ [root@edenluo.com ~]# pkill vim [root@edenluo.com ~]# pkill -9 进程名称 [root@edenluo.com ~]# pkill -t 终端 不加-9只杀死在终端上运行的进程,加-9连终端本身一起干掉 [root@edenluo.com ~]# pkill -u 用户名称

2、进程的优先级(了解)

  • 优先级高的占用CPU时间多
  • 系统分配给程序的数字
  • 优先级特性:值越大,优先级越低,优先级范围:新标准:-20–19 原标准:-99–39

1、查看进程的优先级

[root@edenluo.com ~]# ps axo nice

2、设置进程优先级

1、启动时设置

  • 默认情况会继承父进程的优先级,默认为0
  • 调整优先级示例:

[root@edenluo.com ~]# nice -n -5 sleep 8000 & # 设置睡眠8000秒,&为不占用顶层试图

2、设置已经启动的进程优先级

  • 命令:

[root@edenluo.com ~]# renice -nice PID

  • 示例:

[root@edenluo.com ~]# renice -20 32050 # 将这个进程的优先级调整为-20

三、进程查看扩展命令

1、pstree 查看进程树

[root@edenluo.com ~]# pstree

  • -a 显示参数
  • -p 显示pid
  • -u 显示用户名 只针对普通用户开启的进程

2、pidof 查找服务进程的PID号码

[root@edenluo.com ~]# pidof 进程名称 [root@edenluo.com ~]# pidof sshd 3245

3、pgrep 检索进程PID号码

  • 语法格式:pgrep [参数] 服务名称

[root@edenluo.com ~]# pgrep -l eyes 1179 xeyes

4、w 显示已登录用户的信息

[root@edenluo.com ~]# w 16:51:43 up 8:30, 7 users, load average: 0.11, 0.27, 0.30 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root :0 :0 08:22 ?xdm? 29:39 0.23s gdm-session- root pts/0 :0 14:13 1:43 0.30s 0.30s bash root pts/1 :0 11:19 5:19 0.62s 0.62s bash root pts/2 :0 14:13 1:39m 0.06s 0.01s less root pts/3 :0 14:54 7.00s 0.06s 0.01s w root pts/4 :0 16:25 25:51 0.06s 0.06s bash root pts/5 :0 16:40 7:11 0.24s 0.24s bash

5、who 查看当前登录用户信息

[root@edenluo.com ~]# who root :0 2017-11-27 08:22 (:0) root pts/0 2017-11-27 14:13 (:0) root pts/1 2017-11-27 11:19 (:0) root pts/2 2017-11-27 14:13 (:0) root pts/3 2017-11-27 14:54 (:0) root pts/4 2017-11-27 16:25 (:0) root pts/5 2017-11-27 16:40 (:0)

6、users 显示当前登录的用户

[root@edenluo.com ~]# users root root root root root root root

7、free 显示系统内存使用量情况

free 命令的功能是显示系统内存使用量情况,包含物理和交换内存的总量、使用量和空闲量情况。

语法格式:free [参数]

常用参数:

-b设置显示单位为Byte
-g设置显示单位为GB
-h自动调整合适的显示单位
-k设置显示单位为KB
-l显示低内存和高内存统计数据
-m设置显示单位为MB
-o不显示缓冲区数据列
-s持续显示内存数据
-t显示内存使用总合
-V显示版本信息
  • 参考示例
  • 以默认的容量单位显示内存使用量信息:

[root@edenluo.com ~]# free total used free shared buff/cache available Mem: 2013304 1372796 87432 17620 553076 444040 Swap: 2097148 1804 2095344

  • 以MB位单位显示内存使用量信息:

[root@edenluo.com ~]# free -m total used free shared buff/cache available Mem: 1966 1342 123 14 499 434 Swap: 2047 9 2038

  • 以易读的单位显示内存使用量信息:

[root@edenluo.com ~]# free -h total used free shared buff/cache available Mem: 1.9Gi 1.3Gi 120Mi 14Mi 500Mi 431Mi Swap: 2.0Gi 9.0Mi 2.0Gi

  • 以易读的单位显示内存使用量信息,每个10秒刷新一次:

[root@edenluo.com ~]# free -hs 10 total used free shared buff/cache available Mem: 1.9Gi 1.3Gi 119Mi 14Mi 500Mi 430Mi Swap: 2.0Gi 9.0Mi 2.0Gi ​ total used free shared buff/cache available Mem: 1.9Gi 1.3Gi 119Mi 14Mi 500Mi 430Mi Swap: 2.0Gi 9.0Mi 2.0Gi

如果有版帮助,帮忙免费的关注一下公众号「想吃西红柿」「云原生运维实战派」后续会有更多实用的运维技术分享给伙伴们,您的关注就是我最大的成就。

END