Linux - 系统 - 进程管理

吴宏东 - 记于2018年06月19日 - 博客 https://segmentfault.com/u/wu...

Linux 进程管理

进程概述

父子进程

PID:进程的唯一标识号;
systemd:系统启动后第一个进程,PID=1;
login:systemd进程会创建login进程,所以,systemd是login的父进程,反之login是systemd的子进程;
shell:shell(默认是bash)是login进程创建的,其后用户的所有进程都由该进程派生创建;

进程标识

RUID:实际用户识别号;
RGID:实际组识别号;
EUID:有效用户识别号;
EGID:有效组识别号;
RUID和RGID的作用是识别正在运行此进程的用户和组;
如果程序没有设置SUID和SGID,那么EUID和EGID就是RUID和RGID,而RUID和RGID就是用户和组的UID和GID;

进程类型

交互进程:由shell启动的进程,可以前台或后台运行;
批处理进程:不与特定终端关联,加入后台的计划队列顺序处理;
守护进程:系统初始化后,需要运行于后台的进程;

查看进程

命令 ps -aux

[-a]:显示所有进程;
[-u]:显示用户名和启动时间等信息;
[-x]:显示没有控制终端的进程;
[-w]:显示完整命令行;

# 查找关于openshift的进程
ps -aux|grep openshift;
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 128020  6620 ?        Ss   10:33   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    10:33   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    10:33   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   10:33   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    10:33   0:01 [kworker/u256:0]

USER:用户名;
PID:进程号;
%CPU:占用CPU时间与总时间的百分比;
%MEM:占用内存与系统内存总量的百分比;
VSZ:占用虚拟内存空间,单位KB;
RSS:占用内存空间,单位KB;
TTY:从哪个终端启动;
STAT:进程当前状态;
START:开始执行时间;
TIME:自启动以来占用CPU的总时间;
COMMAND:启动命令名;

状态:R 执行中;S 睡眠;T 追踪或停止;Z 僵尸进程;< 高优先级;N 低优先级;

命令 pgrep

通过模糊匹配模式,查找进程的ID

# 查找关于openshift的进程ID
pgrep openshift;

命令 pidof

通过模糊匹配模式,查找进程的ID

# 查找关于openshift的进程ID
pidof openshift;

杀死进程

命令 kill

# 杀死指定PID为10086的进程
kill 10086;
# 强制杀死进程
kill -9 10086;
# 杀死进程名为openshift的进程
kill openshift;
kill -9 $(pgrep openshift);

命令 killall

# 杀死进程名为openshift的所有进程
killall openshift;

命令 pkill

# 杀死进程名为openshift的所有进程
pkill openshift;

作业进程

cmd &:表示后台执行;
nohup cmd &:表示后台执行,并且用户注销后仍然运行着;
<Ctrl+D>:正常终止一个前台运行的进程;
<Ctrl+C>:强行终止一个前台运行的进程;
<Ctrl+Z>:挂起一个正在前台运行的进程;
<Ctrl+S>:挂起终端;
<Ctrl+Q>:解除挂起终端;

命令 [cmd] &

# 终端休眠100秒,调度到后台运行
sleep 100 &;

命令 nohup [cmd] &

# 终端休眠100秒,调度到后台运行,且用户注销后仍然运行着
nohup sleep 100 &;

命令 jobs

# 查看正在运行的作业
jobs;
# 显示进程PID
jobs -l;
[root@master ~]# jobs -l
[1]+  1810 完成                  sleep 100

[1] 是作业序号;
1810 是进程PID;
sleep 100 是命令;

命令 fg %

# 将作业[1]调度到前台终端运行
fg %1;

命令 bg %

# 将作业[1]调度到后台终端运行
bg %1;

命令 kill %

# 将作业[1]进程杀死
kill %1;

专注于Linux系统信息安全,精通渗透测试、安全审计、漏洞分析、反入侵技术。

25 声望
4 粉丝
0 条评论
推荐阅读
Linux - 系统 - 性能监控
解释: 输出信息top - 后面是当前时间,up后面是系统开机运行的时间,有2个登录用户; load average后面三个数值分别表示1分钟、5分钟、15分钟系统平均负载; KiB Mem后面表示物理内存的总量、空闲、已用; KiB S...

吴宏东1阅读 1.5k

TypeScript 前端工程最佳实践
随着前端工程化的快速发展, TypeScript 变得越来越受欢迎,它已经成为前端开发人员必备技能。 TypeScript 最初是由微软开发并开源的一种编程语言,自2012年10月发布首个公开版本以来,它已得到了人们的广泛认可...

京东云开发者4阅读 810

封面图
工具篇:iTerm与Zsh
iTerm2支持许多的主题配色,可以自己定义,也可以参考网上现成的主题配色。我个人比较喜欢draculatheme配色。支持item,vim,phpstorm , 下方存在主题官网路径,按照教程安装即可。

super白4阅读 4.8k

深入剖析容器网络和 iptables
Docker 能为我们提供很强大和灵活的网络能力,很大程度上要归功于与 iptables 的结合。在使用时,你可能没有太关注到 iptables 的作用,这是因为 Docker 已经帮我们自动完成了相关的配置。

张晋涛3阅读 1.3k

封面图
麒麟操作系统 (kylinos) 从入门到精通 - 常用软件安装 - 第三篇 常用软件安装(windows下的习惯)
本篇内容大部分从应用商店进行安装,部分通过官网下载,少部分通过命令行安装。1.原生应用1.1钉钉1.2飞书1.3 蓝信1.4 腾讯文档1.5 金山文档1.6 搜狗输入法(拼音)1.7 五笔输入法1.8 libreoffice官方也带了WPS,...

码上世界3阅读 7.6k评论 17

封面图
.记一次使用gdb诊断gc问题全过程
上次解决了GC长耗时问题后,系统果然平稳了许多,这是之前的文章《GC耗时高,原因竟是服务流量小?》 然而,过了一段时间,我检查GC日志时,又发现了一个GC问题,如下: 从这个图中可以发现,我们GC有一些尖峰,...

扣钉日记2阅读 675

封面图
麒麟操作系统 (kylinos) 从入门到精通 - 办公环境 - 第十三篇 字体安装与windows字体的利用
正常情况下,系统下的wps或libreoffice用到的字体都已默认安装。但有时候一些ttf字体或者microsoft office下一些字体需要安装。我们可以在安装好office、acrobat之后,将C:\windows\Fonts文件夹中的字体(我是win...

码上世界2阅读 4.1k

封面图

专注于Linux系统信息安全,精通渗透测试、安全审计、漏洞分析、反入侵技术。

25 声望
4 粉丝
宣传栏