一进程管理
1、什么是进程?
程序放在储存媒体中(如硬盘,光盘,软盘,磁带等),为实体文件的形态存在。
进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),即进程就是正在执行中的程序。
2、查看进程
(1)图形方式查看
gnome-system-monitor
键入命令gnome-system-monior,打开图形界面来查看进程。
回车键后,显示当前进程的图形界面如下:
在Process中可以查看到用户名、运行状态、虚拟内存、驻留内存、可写内存等信息。
(2)进程查看命令 ps
(1
ps -A 所有进程
-a 在当前环境中运行的进程,不包含环境信息
-u 显示进程用户信息
a 在当前环境中运行的进程
x 列出系统中所有运行包含tty输出设备
f 显示进程的父子关系
e 显示进程的详细信息(系统资源的调用)
(2
ps常用组合
ps aux 显示系统中所有进程并显示进程用户
ps ef 显示进程详细信息并显示进程父子关系
ps ax 显示当前系统中的所有进程
pstree 显示当前系统的进程树
显示进程指定信息
ps -o xxx 显示进程的指定信息
comm 进程名称
user 进程所有人
group 进程所有组
%cpu 进程cpu使用率
%mem 进程内存使用率
pid 进程id
nice 进程优先级
1)
输入ps
可以看到进程的PID,TTY,TIME,CMD
2)输入ps –A ,查看所有进程
3)输入ps –a
4)输入ps -u
5 )输入ps a
6)输入ps x
7)输入 ps f
8)输入 ps e
ps组合:
ps aux
ps ef
ps ax
pstree
用ps看指令
用ps看用户
用ps查看进程id
利用逗号增加要查看的指定信息
进程排序
ps ax --sort=+%cpu/-%cpu
查看cpu使用率
ps ax –sort++%mem/-%mem
查看内存使用率
#stat中显示的信息#
S #进程状态
l #内存中有锁定空间
N #优先级低
< #优先级高
-
#前台运行
s #顶级进程
同时上图也可以看到cpu和内存的前六行,后五行的样子,头五行(head)
后几行(tail)
还可以通过”ps –A –sort =%mem –o pid | sed –n 2,6p”得到2-6行
(3)进程优先级nice
1)优先级范围-20~19
2)优先级查看
ps ax –o pid,nice,comm
3)指定某个优先级开启进程
nice –n 优先级数字 进程名称
nice –n -5 vim #开启vim并且指定程序优先级为-5
4)改变进程优先级
renice -n 优先级数字 进程名称
renice –n -5 1806 #改变1806进程的优先级为-5
再ps ax –n pid,nice,comm,查看进程优先级,发现已经发生改变。
(4)环境中进程的前后台调用
jobs #查看被打入环境后台的进程
ctrl+z #把占用终端的进程打入后台
fg jobnum #把后台进程调回前台
由于fg指令,可以看出firefox在查看后台进程时已经关闭
bg jobnum #把后台暂停的进程运行
comm & #让命令直接在后台运行
(4)进程信号
1)常用信号等级
1 #进程重新加载配置
2 #删除进程在内存中的数据
3 #删除鼠标在内存中的数据
9 #强行结束单个进程(不能被阻塞)
15 #正常关闭进程(可能会被阻塞)
18 #运行暂停的进程
19 #暂停某个进程(不能被阻塞)
20 #把进程打入后台(可以被阻塞)
Man 7 signal #查看信号详细信息
kill -信号 进程pid
killall –信号 进程名字
pkill -u student -信号
pkill 5543
关闭5543(bash)后推出了watch的窗口
(5)进程的动态监控
1)top
通过在此界面中单机以下信号,得到相应的调整。
1 #显示cpu每个核的负载
s #调整刷新频率
c #cpu负载排序
m #内存使用量排序
h #查看帮助
u #查看指定用户进程
k #对指定进程发起信号
q #退出
(6)控制服务
1)用什么控制服务
系统初始化进程可以对服务进行相应的控制
2)当前系统初始化进程
system #系统初始化进程
pstree #显示系统中的进程树
3)进程控制命令
ssh------------->sshd
client server
systemctl #服务控制命令 (service sshd restart)此格式同样适用
systemctl status sshd #查看服务状态,inactive(不可用),active(可用)
systemctl start sshd #开启服务
systemctl stop sshd #关闭服务
systemctl restart sshd #重启服务
systemctl reload sshd #重新加载服务配置
systemctl enable sshd #设定服务开机启动
systemctl disable sshd #设定服务开机不启动
systemctl list-units #列出已经开启服务当前状态
systemctl list-unit-files #列出所有服务开机启动的状态 disable,enable,static
systemctl list-dependencies #列出服务的依赖
systemctl set-default ulti-user.target #设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target #设定系统启动级别为图形模式
(7)sshd服务
sshd简介
sshd=secure shell
可以通过网络在主机中开启shell的服务
连接格式:
ssh username@ip #文本模式的链接
ssh –X username@ip #可以在链接成功后开启图形
注:1)首次连接未知主机需要建立认证文件;
2)在询问是否建立连接时,输入“yes”;
3)再次连接此主机时,由于已经生成—/.ssh/know_hosts文件所以不需要再次输入”yes”。
远程复制:
scp file root@ip:dir #上传
scp root@ip:file dir #下载
sshd的key认证,
-
生成认证KEY
[root@server~]#ssh-keygen #生成密钥的指令
Generating public/private rsa key pair.
-
加密
[root@localhost.ssh]# ls
authorized_keys id_rsa.pub known_hosts
上述界面出现表示加密完成 -
分发钥匙
scp /root/.ssh/id_rsa root@192.168.80.101:/root/.ssh/
服务端:
客户端:
服务端:
-
测试
在客户主机中(192.168.80.101)
ssh root@192.168.80.201 #连接时发现直接登陆不需要root的密码验证
sshd的安全设定)
PasswordAuthentication yes/no #是否允许用户通过登陆密码做sshd的验证
服务端拒绝密码登陆:
客户端无法登陆
PermitRootLogin yes/no #是否允许root用户通过sshd服务的认证
Allowusers student haha #设定用户白名单,白名单内未出现的均不可使用sshd
Denyusers haha #设定用户黑名单,不再黑名单中的用户可以使用sshd。
#添加sshd的登陆信息
“vim /etc/motd “ #文件内容就是登陆的信息