进程的基本介绍
- 在LINUX中,每个执行的程序(代码)都称为一个进程,每个进程都有一个ID号
- 每个进程都会对应一个父进程,而这个父进程可以复制多个子进程
- 每个进程都可能以两种方式存在,即前台与后台。所谓前台进程就是用户目前的屏幕上可以进行操作的;后台进程是实际在操作,但由于屏幕上无法看到进程,通常使用后台方式执行的进程
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
显示系统执行的进程:ps
一般来说,使用的参数是 ps -aux
其中,
- -a:显示当前终端的所有进程信息
- -u:以用户的格式显示进程信息
- -x:显示后台进程运行的参数
ps显示的信息选项:
- PID:进程识别号
- %CPU:进程占CPU百分比
- %MEM:进程占物理内存的百分比
- VSZ:进程占用的虚拟内存大小
- RSS:进程占用物理内存大小
- TTY:终端机号
- STAT:进程状态,其中,S-睡眠、s-表示该进程是会话的先导进程、N-表示进程拥有比普通优先级更低的优先级、R-正在运行、D-短期等待、Z-僵死进程、T-被跟踪或被停止
- START:进程的等待时间
- TIME:此进程所消CPU时间
- COMMAND:正在执行的命令或进程名
ps -ef是以全格式显示当前所有的进程,
- -e:显示所有进程
- -f:全格式
信息说明:
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- C:CPU用于计算执行优先级的因子。数值大,表明进程是CPU密集型运算,执行优先级会降低;数值小,表明进程是I/O密集型运算,执行优先级会提高
- STIME:进程启动时间
- TTY:完整的终端名称
- TIME:CPU时间
- CMD:启动进程所用的命令和参数
终止进程kill和killall
若是某个进程需要停止,可以使用kill命令完成此项任务
kill 【选项】 进程号 :通过进程号杀死进程
killall 进程名称:通过进程名称杀死进程,也支持通配符,这在系统负载过大时很有用
常用选项:-9,表示强迫进程立即停止
查看进程树pstree
选项:
- -p:显示进程的PID
- -u:显示进程的所属用户
服务管理
服务本身就是进程,其运行在后台,通常会监听某个端口,等待其他程序的请求,比如(mysql,sshd,防火墙等),因此我们又称为守护进程。
管理指令:service 服务名 【start | stop | restart | reload | status】
注:
- 在CentOS 7.0之后,不再使用service,而是systemctl
- 关闭或启用防火墙后,立即生效
- 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置
可以通过chkconfig命令,给每个服务的各个运行级别设置自启动/关闭
- chkconfig --list | grep xxx
- chkconfig 服务名 --list
- chkconfig --level 5 服务名 on/off:打开/关闭该服务的运行级别5权限
动态监控进程
top命令可以实时监控进程
选项说明:
- -d 秒数:指定top命令隔几秒更新,默认是3秒
- -i:使top不显示任何闲置或者僵死的进程
- -p:通过指定监控进程ID来仅仅监控某个进程的状态
交互操作:
- P:以CPU使用率排序,默认就是此项
- M:以内存的使用率排序
- N:以PID排序
- q:退出top
- u:通过用户名查看进程
- k:紧接着输入进程号即可终止进程
查看系统网络状况使用netstat指令
我们常常使用 netstat -anp | more 查看所有的网络服务
其中,
- -an:按一定顺序排列输出
- -p:显示哪个进程在调用