进程 管理

目录

进程管理

 1、什么是进程

2、查看进程 process

一、静态查看进程

查看进程(一)

查看进程(二)

查看单个PID

查看指定PID

查看端口

二、动态查看进程

top、htop

top操作

进程控制

按pid杀死进程

案例一

案例二

案例三

作业控制

作业控制之jobs:

实战案例

常用命令

1.查看当前CPU负载

2.查看内存使用

3.linux启动过程

4.查看系统的版本和内核

5.修改主机名

6.跳板机(堡垒机)的作用

7.安装过操作系统吗?怎么安装?


进程管理

进程:程序在内存中的表现形式。

 1、什么是进程

进程是已启动的可执行程序的运行实例,是程序运行的过程, 动态的,有生命周期及运行状态。

程序: 二进制文件,静态 /bin/date, /usr/sbin/httpd,/usr/sbin/sshd, /usr/local/nginx/sbin/nginx

2、查看进程 process


一、静态查看进程

查看进程(一)

[root@linux-server ~]# ps      aux  |       less


参数解释:
ps :    process nsapashot

a     只能查看系统里面运行的所有终端进程。
u     显示进程拥有者。
x     显示系统内所有进程。
f      显示进程之间的父子关系 。 (qq衍生出来的聊天框,子可以调用父进程的资源)


[root@linux-server ~]#      ps    aux  |  less

USER:     #运行进程的用户
PID:      #进程ID
%CPU:    #CPU占用率
%MEM:   #内存占用率
VSZ        进程占用的虚拟内存大小
RSS       占用的物理内存大小


STAT:  #进程状态  ---了解

?         表示没有占用终端
R        运行
S        可中断睡眠 Sleep
Ss       s进程的领导者,父进程
Sl       以线程的方式运行
S<     <优先级较高的进程
SN    N优先级较低的进程
R+     +表示是前台的进程组
D        不可中断睡眠
T         停止的进程
Z         僵尸进程
X         死掉的进程
START:    #进程的启动时间
TIME:   #进程占用CPU的总时间
COMMAND: #进程文件,进程名


查看tty的方法:

[root@linux-server ~]# tty             

? 表示这个进程开启的时候没有占用终端


查看进程(二)

[root@linux-server ~]# ps    -ef    (看父进程多用此命令)

参数解释:

-e 显示所有进程

-l 长格式显示   详细显示

-f 完整格式


UID         用户ID
PID         进程ID
PPID      父进程ID
C            CPU占用率
STIME     开始时间
TTY         开始此进程的TTY----终端设备
TIME       此进程运行的总时间  与ps  aux  不同。
CMD       命令名 


查看单个PID

 yum install -y httpd             #安装apache软件
systemctl start httpd            #启动
cat             /var/run/httpd/httpd.pid
1043


查看指定PID

 ps     aux |     grep sshd
root       1043  0.0  0.2 105996  4120 ?        Ss   01:32   0:00 /usr/sbin/sshd -D
grep:过滤


查看端口

 yum    install    lsof        安装软件包
lsof              -i:80            端口号       这能查看带端口的进程
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd   64249   root    4u  IPv6 1373628      0t0  TCP *:http (LISTEN)

端口:确定一台电脑具体服务的位置。查网络进程和正在监听的端口服务器中,每个服务都有自己唯一的身份标识,就是端口。


[root@linux-server ~]#     netstat               -lntp/tanlp

参数详解:

-a    显示全部的进程
-u    显示udp(不安全,但是速度快)
-n    以数字的形式显示协议名称
-t     tcp(安全传输协议)
-p:显示进程的名称和pid
-l :   只显示正在被监听的端口


httpd/nginx 80;https 443;数据库端口(mysql,mariadb) 3306;sshd 22;win远程连接 3389 

[root@linux-server ~]# w      #看已经登陆到终端的进程信息,远程登陆会有ip 地址。


二、动态查看进程

top、htop

[root@linux-server ~]# top          #动态显示信息,三秒刷新一次。

在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度也是个数。

1分钟   第一个数字
5分钟   第二个数字
15分钟  第三个数字
计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。


top操作

[root@linux-server ~]#      top
h|?      帮助
>         往下翻页
<          往上翻页
M         按内存排序
P          按cpu排序
q          退出  
z          彩色显示
W        保存
PR      优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES  进程使用的、未被换出的物理内存大小,单位kb。
SHR  共享内存大小,单位kb


所有进程出生nice值为20

ni :nice值
id: cpu空闲率
wa:cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了

进程优先级 nice

nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。


进程控制

按pid杀死进程

kill,   pkill

语法: kill 信号 PID                             #信号也是进程间通信的一种方式

[root@linux-server ~]#     kill -l             #查看所有信号

-1(数字一)   HUP  重新加载进程或者重新加载配置文件,PID不变
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)
-18  CONT 激活进程
-19  STOP 挂起进程

pkill -9 服务名称/进程名称


案例一

给vsftpd进程发送信号1,15 vsftpd信号测试

[root@linux-server ~]# yum install -y vsftpd  #安装vsftpd
[root@linux-server ~]# systemctl start vsftpd  #启动
[root@linux-server ~]# ps aux | grep vsftpd
root      59363  0.0  0.0  53212   576 ?        Ss   16:47   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

[root@linux-server ~]# kill -1   59363   

#发送重启信号,例如vsftpd的配置文件发生改变,希望重新加载

[root@linux-server ~]# ps aux | grep vsftpd
root      59363  0.0  0.0  53212   748 ?        Ss   16:47   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@linux-server ~]# kill 59363       #正常杀死进程,信号为-15可以默认不写。我们可以使用systemctl stop vsftpd 停止服务。
[root@linux-server ~]# ps aux | grep vsftpd
root      62493  0.0  0.0 112660   968 pts/0    S+   16:51   0:00 grep --color=auto vsftpd


进程状态解释--了解:

+:表示运行在前台的进程组
S+:休眠状态
T+:暂停,挂起状态
s:父进程


案例二

给vsftpd进程发送信号-9, vsftpd信号测试

[root@linux-server ~]# systemctl start vsftpd
[root@linux-server ~]# ps aux | grep vsftpd
root      67003  0.0  0.0  53212   572 ?        Ss   16:57   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      67089  0.0  0.0 112660   972 pts/0    S+   16:57   0:00 grep --color=auto vsftpd
[root@linux-server ~]# kill -9 67003  #强制杀死,一般用于不能正常停止的情况下
[root@linux-server ~]# ps aux | grep vsftpd
root      67190  0.0  0.0 112660   972 pts/0    S+   16:57   0:00 grep --color=auto vsftpd


案例三

使用pkill 杀死vsftpd进程

[root@linux-server ~]# systemctl     start     vsftpd
[root@linux-server ~]# ps -   aux    |    grep vsftpd
root      73399  0.0  0.0  53212   572 ?        Ss   17:05   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      73499  0.0  0.0 112660   968 pts/0    S+   17:05   0:00 grep --color=auto vsftpd
[root@linux-server ~]#       pkill -9 vsftpd  #使用pkill可以指定进程名字
[root@linux-server ~]#        ps -aux | grep vsftpd
root      73643  0.0  0.0 112660   968 pts/0    S+   17:05   0:00 grep --color=auto vsftpd


作业控制

作业控制之jobs:

作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。

实战案例

语法:    命令   &      
[root@linux-server~]# sleep 7000 &      #&:让命令或者程序后台运行
[1] 5441
[root@linux-server ~]# sleep 8000        #ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
^Z
[2]+  Stopped                 sleep 8000

[root@linux-server ~]# jobs                    #查看后台的工作号
[1]-  Running                 sleep 7000 &
[2]+  Stopped                 sleep 8000
[root@linux-server ~]# bg %2  #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
[2]+ sleep 8000 &
[root@linux-server ~]# jobs
[1]-  Running                 sleep 7000 &
[2]+  Running                 sleep 8000 &

[root@linux-server ~]# fg %1  #将后台的程序调到前台
sleep 7000
[root@linux-server ~]# jobs
[2]+  Running                 sleep 8000 &
[root@linux-server ~]# kill -9   %2    #通过kill杀死进程
[root@linux-server ~]# jobs
[2]+  Killed                  sleep 8000
[root@linux-server ~]# jobs     #再次查看没有了


常用命令

1.查看当前CPU负载

[root@linux-server ~]# uptime
17:35:01 up 16:02,  3 users,  load average: 0.00, 0.02, 0.05


2.查看内存使用

[root@linux-server ~]#  free -m
             total        used        free      shared  buff/cache   available
Mem:           1984         154        1508           8         321        1632
Swap:          2047           0        2047

-m:单位M


3.linux启动过程

1加电,2加载bios设置,3加载grub,4加载内核系统到内存当中,
5加载配置文件,6加载内核模块,7完成相应的初始化工作和启动相应的服务,
8启动系统进程,9出现登录界面,10开机启动完成


4.查看系统的版本和内核

[root@linux-server ~]# cat      /etc/redhat-release  #查看版本
CentOS Linux release 7.4.1708 (Core)
[root@linux-server ~]# uname -a #看查正在运行的内核版本
Linux linux-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@linux-server ~]# uname -r  #查看内核版本
3.10.0-693.el7.x86_64


5.修改主机名

[root@linux-server ~]# hostnamectl   set-hostname  xxxx   #主机名,修改完之后断开与终端连接,然后在重新连接即可。

查看主机名
[root@linux-server ~]# hostname


6.跳板机(堡垒机)的作用

1 身份验证
2 屏幕录制,防止员工对服务器做有害的操作
3 批量操作 一次性操作2-200台机器


7.安装过操作系统吗?怎么安装?

1.小批量设备,使用U盘安装
(调整bios参数从U盘启动)

2.大批量设备搭建PXE装机系统,从网络批量安装
(调整网络启动项,从网络启动)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值