含义:进程是已启动的可执行程序的实例,是程序运行的过程,动态的,有生命周期及运行状态。
ps aux #user 运行程序的用户 #PID 进程ID #%CPU CPU占用率 #MEM 内存占有率 #VSZ 进程占用的虚拟内存大小 #RSS 占用的物理内存大小 #TTY ? 表示没有占用终端 #STAT 进程状态 1.R 运行 2.S 可中断睡眠 Sleep 3.D 不可中断睡眠 4.T 停止的进程 5.Z 僵尸进程 6.X 死掉的进程 #START 进程开始的时间 #TIME 进程运行的时间 #COMMAND 进程文件,进程名
#S1 以线程的方式进行 #Ss S表示父进程,s表示子进程 #R+ +表示前台的进程组 #S< <表示优先级高的进程 #SN N表示优先级低的进程
[root@localhost ~]#ps -ef 参数解释 -e 显示所有进程 -f 完整格式 -l 长格式显示
UID 用户ID PID 进程ID PPID 父进程ID C CPU占用率 STIME 开始时间 TTY 开始此进程的TTY----终端设备 TIME 此进程运行的总时间 CMD 命令名
[root@linux-server ~]# yum install -y httpd #安装apache软件 [root@linux-server ~]# systemctl start httpd #启动 [root@linux-server ~]# cat /var/run/httpd/httpd.pid 1043 [root@linux-server ~]#pidof httpd [root@linux-server ~]#pgrep httpd
[root@linux-server ~]# ps aux | grep sshd root 1043 0.0 0.2 105996 4120 ? Ss 01:32 0:00 /usr/sbin/sshd -D grep:过滤
#注意:端口号只有整数,范围是从0 到65535
1.安装lsof yum -y install lsof 例如:查看端口是3306的进程 lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 1340 mysql 12u IPv4 22016 0t0 TCP *:mysql (LISTEN) 参数解释: FD:文件描述符,应用程序通过文件描述符识别该文件。 DEVICE:指定磁盘的名称 SIZE:文件的大小
#安装net-tools yum -y install net-tools #[root@linux-server ~]# netstat -nplt 参数详解: -a 显示全部的进程 -u 显示udp -n 以数字的形式显示协议名称 -t tcp -p:显示进程的名称和pid -l :只显示正在被监听的端口 参数解释: recv-Q:网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。 send-Q:网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区.如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。 Foreign Address:与本机端口通信的外部请求 #ss -nplt #参数解释同上 #与管道搭配可以精准查看端口 例如:查看MySQL的端口 ss -nplt | grep MySQL (grep是过滤)
[root@linux-server ~]# top #动态显示信息,三秒刷新一次。
在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。 1分钟 第一个数字 5分钟 第二个数字 15分钟 第三个数字 ====================== 计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。
[root@linux-server ~]# top h|? 帮助 > 往下翻页 < 往上翻页 M 按内存排序 P 按cpu排序 q 退出 z 彩色显示 W 保存 ===================================== PR 优先级 VIRT 进程使用的虚拟内存总量,单位kb。 RES 进程使用的、未被换出的物理内存大小,单位kb。 SHR 共享内存大小,单位kb
us: 用户态进程占用cpu ni: nice值 id: cpu空闲率 wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了 hi:硬中断,请求插队 si:软中断 st:停止
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。 nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
修改进程优先级
[root@linux-server ~]#renice -n -10 pid
[root@linux-server ~]# w #看已经登陆到终端的进程信息,远程登陆会有ip 地址 部分参数解释: USER –登录用户名. TTY –登录用户使用的终端名. FROM –登录用户来源的主机名或IP地址. LOGIN@ –用户登录时间. WHAT –用户当前的进程及选项/参数。
kill,pkill 语法: kill 信号 PID #信号也是进程间通信的一种方式 #pkill -9 nginx 强制杀死nginx的所有进程
[root@linux-server ~]# kill -l #查看所有信号 -1 HUP 重新加载进程或者重新加载配置文件,PID不变 -9 KILL 强制杀死 -15 TERM 正常杀死(这个信号可以默认不写) -18 CONT 激活进程 -19 STOP 挂起进程
给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 #在次查看没有了 nohup
1加电,2加载bios设置,3加载grub,4加载内核系统到内存当中, 5加载配置文件,6加载内核模块,7完成相应的初始化工作和启动相应的服务, 8启动系统进程,9出现登录界面,10开机启动完成
[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
[root@linux-server ~]# uptime 17:35:01 up 16:02, 3 users, load average: 0.00, 0.02, 0.05 [root@linux-server ~]# w [root@linux-server ~]# top
[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 [root@linux-server ~]#df -h
nginx:80 httpd:80 sshd:22 mail:25 465 tomcat:8080 mysql:3306 redis:6379 ftp:21