博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux - 系统 - 进程管理
阅读量:7192 次
发布时间:2019-06-29

本文共 2170 字,大约阅读时间需要 7 分钟。

吴宏东 - 记于2018年06月19日 - 博客

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 COMMANDroot          1  0.0  0.1 128020  6620 ?        Ss   10:33   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22root          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的进程IDpgrep openshift;

命令 pidof

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

# 查找关于openshift的进程IDpidof 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;# 显示进程PIDjobs -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;

转载地址:http://uzxkm.baihongyu.com/

你可能感兴趣的文章
Xcode7工程改名
查看>>
oc调用swift的打包.a / framework 不成功?!
查看>>
快速排序
查看>>
python笔记02切片及字符串操作
查看>>
二叉树的递归和非递归实现
查看>>
Dx bad class file magic (cafebabe) or version (0033.0000) ant打包遇到问题2
查看>>
只能输入数字,输入非数字时弹出提示
查看>>
android开发中经常会用到的一些开源项目
查看>>
cocos creator怎么隐藏组件(setVisible)
查看>>
Ubuntu 16.04 LTS发布
查看>>
java泛型的理解
查看>>
C++笔记(4)-用于大型程序的工具
查看>>
游戏中使用LUA脚本语言的简介
查看>>
gcc -lpthread
查看>>
Python replace()方法
查看>>
sparkStreaming(2.1.0)示范代码
查看>>
Movideo着手将大规模的基于Java的平台向Windows Azure转变
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
查看>>
windows 如何查看端口占用情况?
查看>>
WCF中序列化(XML\JSON\Dt)
查看>>