一、Linux进程介绍
程序是保存在外部存储介质中可执行代码和数据的静态集合;为了某种任务而设计的软件
进程是在CPU及内存中处于动态执行状态的计算机程序
linux系统中一个程序启动后,可以创建一个或者多个进程
1.1 进程分类
根据进程特点分类:
① 交互进程:由shell启动的进程,既可以在前台运行也可以在后台运行。交互进程在执行过程中是需要与用户进行交互操作。
② 批处理进程:和windows的批处理很类似,是一个进程序列。批处理进程负责按照顺序启动其他进程
③ 守护进程:执行特定功能或者执行系统相关任务的后台进程。守护进程只是一个特殊的进程,不是内核的组成部分。
根据进程状态分类:
① 守护进程:所有守护进程都可以超级用户的优先权运行;守护进程没有控制终端‘守护进程的父进程都是init进程
② 孤儿进程:一个父进程退出后,他的一个或者多个子进程还在运行,这些子进程成为孤儿进程。孤儿进程将被init进程所收养,并由init进程对他们完成状态收集工作。
③ 僵尸进程:一个子进程结束但是没有完全释放内存(在内核中的task_struct没有释放),该进程成为僵尸进程。
僵尸进程的父进程结束后,该僵尸进程就会被init进程所收养,最终被回收。
僵尸进程会导致资源的浪费,孤儿进程不会。
1.2 进程属性
PID
进程的ID,唯一的数值,用来区分进程
PPID
代表父进程以及父进程的ID
UID
启动进程的用户ID
GID
进程所属的组
nice
进程执行的优先级
tty
进程锁连接的终端
stat
进程的状态,一般分为运行R、休眠S、僵尸Z
二、 进程的管理
进程的管理是通过进程管理工具实现的
2.1 查看进程
ps
查看静态的进程统计信息
top
查看进程动态信息
htop
查看进程动态信息,top的升级版
pgrep
查询进程信息
pstree
查看进程树
2.2控制进程
启动进程:手工启动和调度启动
手工启动:前台启动、后台启动
调度启动:计划任务,如at、crontab
2.3终止进程执行
Ctrl + C
终止正在执行的命令
kill
终止进程