linux系统进程和服务控制
1,什么是进程?
进程就是系统未完成并且正在进行的工作。
程序:放置在储存媒体中(如硬盘,光盘,软盘,磁带等)为实体文件的型态存在。
进程:程序被触发后,执行者的权力与属性、程序的程序码与所所需数据都会被载入内存中,操作系统给与这个内存内的单元一个识别码(PID),也可以说,进程就是一个正在运行中的程序。
2.查看进程
1)图形方式查看:gnome-system-monitor
2)进程查看命令
ps ##显示进程信息
ps -A ##所有进程
ps -a ##在环境中的所有进程,不包含环境信息
ps -u ##显示进程用户信息
ps a ##显示当前环境中运行的进程,包含环境信息
ps x ##列出系统中所有运行包含tty输出设备
ps f ##显示进程的父子关系
ps e ##显示进程的详细信息(系统资源的调用)
###ps常用组合###
ps aux ##显示系统中所有进程并显示进程用户
ps ef ##显示进程详细信息并显示进程父子关系
ps ax ##显示当前系统中的所有进程
pstree ##显示当前系统的进程树
###显示进程指定信息###
ps -o xxx ##显示进程的指定信息
ps -o comm ##进程名称
ps -o user ##进程所有人
ps -o group ##进程所有组
ps -o %cpu ##进程cpu使用率
ps -o %mem ##进程内存使用率
ps -o pid ##进程id
ps -o nice ##进程优先级
###进程排序###
ps ax --sort=
+%cpu|-%cpu
+%mem|-%mem
提示:+表示从小到大排序|-表示从大到小排序
例:将cpu进程排序前五的id给显示出来:
ps ax -o pid --sort=-%cpu | head -n 6 |tail -n 5(因为PID标识还要占用一行,所以是head -n 6 )
###start中显示的信息###
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
- ##前台运行
s ##顶级进程
3.进程优先级
1)进程的优先级范围
-20~19 ##优先级越高数字越小,越低数字越大
2)优先级查看
ps ax -o pid,nice,comm
ps -l ##查看系统进程优先级
3)指定某个优先级开启进程
nice -n 优先级数字 进程名称
如:指定firefox的优先级为-6:
再如:用nice -n -5 vim & ##开启vim并且指定程序优先级为-5
4)改变进程优先级
renice -n 优先级数字 进程pid
例: renice -n -5 1806 ##改变1806进程的优先级为-5
如:改变PID为2694进程的优先级为-5:
注:如果以上命令没有在监控环境下进行,也可以在操作结束后输入ps -o pid,nice,comm进行查看的。
ps ax a -o pid,nice,comm
PID NI COMMAND
614 0 Xorg
1128 0 agettyq
1625 0 bash
1785 0 vim
1806 -5 vim
1824 -5 vim
1835 0 ps
4.环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
提示:+表示优先调用,-表示次优先调用,空白表示排着队。
ctrl+z ##把占用终端的进程打入后台
fg jobsnum ##把后台进程调回前台
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
注意:vim是必须要占用终端的所以不能在后台运行!!!
5.进程信号
1)常用信号等级
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程(可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程(不能被阻塞)
20 ##把进程打入后台(可以被阻塞)
man 7 signal ##查看信号详细信息
kill -信号 进程pid
killall -信号 进程名字
pkill -u student -信号 ##结束student用户开启的进程
如:
6.进程的动态监控
1.top
1. ##显示cpu每个核的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定用户发起信号
q ##退出
7.控制服务
1)什么是服务
表示后台运行的程序,一般随系统的启动而自动启动
2)用什么控制服务
系统初始化进程可以对服务进行相应的控制
3)当前系统初始化进程是什么
systemd ##系统初始化进程
pstree ##显示系统中的进程
4)进程控制命令
ssh ------->sshd
client server
systemctl ##服务控制命令
systemctl status sshd ##查看服务状态,inactive(不可用),active(可用)
例如,ssh的服务名为sshd
systemctl ##服务控制命令
systemctl status sshd ##查看服务状态,inactive(不可用),active(可用)
systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务
systemctl reset sshd ##重启服务
systemctl reload sshd ##重新加载服务配置
systemctl enable sshd ##设定服务开机启动
systemctl disable sshd ##设定服务开机不启动
systemctl list-units ##列出系统所有服务当前状态
systemctl list-nuit-files ##列出所有服务开机启动的状态 disable ,enable,static
systemctl list-dependencies ##列出服务的依赖
systemctl set-default multi-user.target ##设定系统启动级别为多用户模型(无图形)
再次重启时:会出现无图形模式
systemctl set-default graphical.target ##设定系统启动级别为图形模式
变为有图模式了。