Linux进程管理
程序与进程
程序:是一组指令及参数的集合,按照既定的逻辑控制计算机运行来完成特定任务
进程:是运行着的程序,操作系统执行的基本单位,程序的运行的过程,动态的有生命周期,有运行状态
区别:程序是静态的,在不运行的时候没有任何意义。进程是程序的运行过程
进程和程序不是一一对应的
进程有并发性和交往性,而程序却是封闭的
线程
所有的进程都是第一个系统进程的后代
centos6 init
centos systemd
fork函数
进程管理相关命令
pstree 显示进程树
-p:显示pid
ps
pgrep 显示指定进程的id
kill pid 杀死指定进程(指定pid)
-l:列出所有信号
-1 让终端直接断线
-2 类似Ctrl+c
-9 强制终止
-15:默认 不加任何信号时默认是15
-18 SIGCONT
-19 SIGSTOP kill -19 7304
killall processname 杀死指定名称的进程
pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。
htop
vmstat 监控内存信息 swpd:虚拟内存的大小
eg:每隔两秒采集一次信息,采集五次——vmstat 2 5
lsof :查看哪些文件被谁占用了
进程前后台
前台进程: 运行时与shell异步运行
后台进程:运行时与shell同步运行,非交互式
进程状态
就绪
运行
等待
进程优先级(进程占用CPU能力)
pri priority 优先权 值越小,进程优先级越高
ni nice 取-20至19(40个值)优先级别的修正值
PRI(new)=PRI(old)+nice
renice 更改优先级 eg:renice -10 15(给第15条改nice值)
/proc
/proc/N/ N代表某一个进程
cmdline:进程启动命令
cwd:链接到进程的工作目录 (主进程关联的工作目录是/目录)
environ:进程环境变量
exe:链接到进程的执行命令文件
fd:包含进程相关的所有的文件描述符
mem:进程所持有的内存
root:链接到进程的工作目录
stat:进程状态
statm:进程使用的内存状态
/sys
dev:块设备和字符设备文件
devices:各类物理设备
block:已被发现的块设备
bus:总线设备
module:已经被载入内核的功能模块
fs:所有文件系统
kernel:内核中可以被调整的参数
power:控制机器电源状态
作业:
(进程的一个集合,或者说是一个任务)
让作业在后台运行:作业后面 +&:
sleep 300:休眠300秒
Ctrl + z 将前台程序挂起到后台
jobs 查看后台作业
bg %# 让作业# 在后台运行
fg %#(1、2、3…) 让作业#恢复到前台运行
kill %#