Linux进程管理 第四章

目录

什么是进程

查看进程process

动态查看进程

进程控制

作业控制

常用命令(了解)

特殊权限


什么是进程

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

进程的生命周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。任何进程都可以创建子进程。

进程状态
进程状态产生的原因:在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。

(1)R运行状态(runing):并不意味着进程一定在运行中,也可以在运行队列里;

(2)S睡眠状态(sleeping):进程在等待事件完成;(浅度睡眠,可以被唤醒)

(3)D磁盘睡眠状态(Disk sleep):不可中断睡眠(深度睡眠,不可以被唤醒,通常在磁盘写入时发生)

(4)T停止状态(stopped):可以通过发送SIGSTOP信号给进程来停止进程,可以发送SIGCONT信号让进程继续运行

(5)X死亡状态(dead):该状态是返回状态,在任务列表中看不到;

(6)Z僵尸状态(zombie):子进程退出,父进程还在运行,但是父进程没有读到子进程的退出状态,子进程进入僵尸状态;

(7)t追踪停止状态(trancing stop)

查看进程process

ps aux       

 查看tty的方法:

 ps -ef

参数解释:

-e 显示所有进程
-l 长格式显示
-f 完整格式

 查看单个pid

[root@localhost ~]# yum install -y httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl status httpd
[root@localhost ~]# cat /var/run/httpd/httpd.pid 
[root@localhost ~]# ps aux |grep httpd

查看指定pid

[root@localhost ~]# ps aux|grep sshd 
root        891  0.0  0.4 105996  4120 ?        Ss   08:47   0:00 /usr/sbin/sshd -D
root      51573  0.3  0.5 146020  5620 ?        Ss   20:34   0:08 sshd: root@pts/0,pts/1

查看端口

[root@localhost ~]# yum -y install lsof   #安装软件包
[root@localhost ~]# lsof -i:22
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd      891 root    3u  IPv4   18805      0t0  TCP *:ssh (LISTEN)
sshd      891 root    4u  IPv6   18814      0t0  TCP *:ssh (LISTEN)
sshd    51573 root    3u  IPv4 4007647      0t0  TCP localhost:ssh->192.168.242.1:59081 (ESTABLISHED)

查看网络进程和正在监听的端口

[root@localhost ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    


参数详解:
-a  显示全部的进程
-u  显示udp
-n  以数字的形式显示协议名称
-t  tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口

查看httpd占用的端口号:netstat -lnpt |grep httpd

想查看某个端口号下的进程:netstat -lnpt |grep 22  或者   lsof -i:22

动态查看进程

[root@localhost ~]# top

top - 21:22:17 up 12:34,  3 users,  load average: 0.01, 0.05, 0.05

Tasks: 107 total,   1 running, 106 sleeping,   0 stopped,   0 zombie

%Cpu(s):  6.2 us, 12.5 sy,  0.0 ni, 81.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :   999696 total,   515176 free,   121608 used,   362912 buff/cache

KiB Swap:  2097148 total,  2097148 free,        0 used.   690936 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                        

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

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

进程控制

按pid杀死进程

kill -1 重新加载进程或者配置文件
kill -9 强制杀死进程
kill 默认等于kill -15 正常杀死进程
kill -18 激活进程
kill -19 挂起进程
kill 后面输入进程的pid
pkill 后面输入进程名

作业控制

sleep 7000 & 让命令或者程序后台运行
sleep 8000  ctrl z 把命令或程序放到后台(这方法会是程序在后台暂停
jobs  查看后台的工作号
bg %工作号 让暂停的程序在后台运行,%是用来修饰job number
fg %工作号 把后台的程序调到前台
kill -9 %工作号 通过kill杀死进程
kill -18 %工作号 将后台暂停的程序激活

常用命令(了解)

uptime 查看cpu负载

free -m 查看内存使用情况

linux启动过程

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

特殊权限

chatter -i   文件路径   #不允许做任何操作

chatter -a  文件路径  #不允许修改,只允许追加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值