Linux系统下的进程及服务控制
分类:
文章
•
2023-03-24 13:14:48
##1.什么是进程##
进程就是系统未完成并且正在进行的工作
在Linux系统当中触发任何一个事件时,系统都会将它定义为一个进程,并且给予在这个进程一个ID,称为PID,同时依据这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。
进程与程序:
程序一般是放置在磁盘中,然后通过用户的执行来触发,触发后会加载到内存上成为一个个体,那就是进程。系统是通过PID来判断该process是否有权限进行工作的。
子进程与父进程:
当我们登陆系统后,会取得一个bash的shell,然后,我们用这个bash提供的接口去执行另外一个命令,例如/user/bin/passwd或者是touch等,那么另外执行的命令也会被触发成为PID ,那么后来执行命令才产生的PID就是“子进程”,而在我们原来的bash环境下,就称为“父进程”。
系统或网络服务:常驻在内存中的进程(什么是daemon与service服务)
常驻在内存中的进程通常都是负责一些系统所提供的功能以服务用户各项任务,因此这些常驻进程就会被我们称为服务(daemon)。或者说,实行循环性例行性工作调度服务(service)的程序为crond这个daemon。
##2.查看进程 ps命令##
1)图形方式查看
gnome(图形的网络操作环境)

2)进程查看命令
ps -A #所有进程

ps -a #在当前环境中(shell中)运行的进程,不包含环境信息
ps a#在当前环境中运行的进程,包含环境信息

ps -u#显示进程用户信息

ps x#列出系统中所有运行包含tty(输出设备)

ps f#显示进程的父子关系

ps e#显示进程调用环境工具的详细信息(系统资源的调用)

ps常用组合
ps aux 显示系统中所有进程并显示进程用户

ps ef 显示进程详细信息并显示进程父子关系
ps ax 显示当前系统中的所有进程

##显示进程指定信息
ps -o xxx 显示进程的指定信息

ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat ##指定显示进程的某些信息


##进程排序
ps ax --sort = +%cpu|-#cpu
+%mem|-%mem


##3.进程优先级##
1.进程的优先级范围
-20~19
2.优先级查看
ps ax -o pid,nice,comm

3.指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -5 vim & ##开启vim并且指定程序优先级为-5

4. 改变进程优先级
renice -n 优先级数字 进程pid (vim不能在后台运行,特殊在系统资源中没有独立资源)

##4环境中进程的前后台调用##

##5.进程信号####
1.常用信号等级
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程 (不能被阻塞)
20 ##把进程打入后台 (可以被阻塞)
man 7 signal ##查看信号详细信息
kill -信号 进程pid

killall -信号 进程名字

pkill -u student -信号

##6.进程的动态监控##
1.top

1.##显示cpu每个核的负载
s.##调整刷新频率
c.##cpu负载排序

m.##内存使用量排序
h.##查看帮助
q:##退出
u.##查看指定用户进程

k.##对指定进程进行指定操作

##7.控制服务##
1.什么是服务
2.用什么控制服务
系统初始化进程可以对服务进行相应的控制
3.当前系统初始化进程是什么
systemd 系统初始化进程
pstree 显示系统中的进程树
4.进程控制命令systemctl
ssh -- sshd
client -- server
systemctl ##服务控制命令
systemctl status sshd ##查看服务状态,active(可用)

systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务

systemctl restart ##重启服务
systemctl reload ##重新加载服务配置
systemctl enable ##设定服务开机启动
systemctl disable ##设定服务开机不启动
systemctl list-units ##列出已经开启服务当前状态

systemctl list-unit-files ##列出所有服务开机启动的状态

systemctl list-dependencies##列出服务 的依赖
systemctl set-default multi-user.target 设定系统启动级别为多用户模式(无图形)开机时输入startx
systemctl set-default graphical.target 设定系统启动级别为图形模式
##服务状态
systemctl status 服务名称
loaded ##系统服务已经初始化完成,加载过配置
active(running) ##正有一个或多个程序正在系统中执行,
# vsftpd 就是这种模式
atcive(exited) ##仅执行一次就正常結束的服务,
# 目前并没有任何程序在系統中执行
atcive(waiting) ##正在执行当中,
# 不过还再等待其他的事件才能继续处理
failed ##系统配置错误