进程 —ps命令
在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一 个ID号(pid,进程号)
每个进程都可能以两种方式存在的。前始与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
显示系统执行的进程
ps命令用来查看目前系统中,有哪些正在执行,以及执行的情况
- ps -a:显示当前终端的所有进程信息
- ps -u:以用户的格式显示进程信息
- ps -x:显示后台进程运行的参数
ps指令说明
- System V展示风格
- USER :用户名称
- PID :进程号
- TID:线程号
- %CPU :进程占用CPU的百分比
- %MEM :进程占用物理内存的直分比
- VSZ :进程占用的虚拟内存大小(单位: KB)
- RSS :进程占用的物理内存大小(单位; KB )
- TTY:终端名称缩写.
- STAT :进程状态,其中
- S—睡眠
- s—表示该进程是会话的先导进程
- N—表示进程拥有比普通优先级更低的优先级
- R—正在运行
- D—短期等待,
- z—僵死进程
- T—被跟踪或者被停止等等
- STARTED :进程的启动时间
- TIME : CPU时间,即进程使用CPU的总时间
- COMMAND :启动进程所用的命令和参数,如果过长会被截断显示
ps -ef 是以全格式显示当前所有的进程
-e显示所有进程 -f 全格式或-o自定义格式
- UID :用户ID
- PID :进程ID
- PPID:父进程ID
- C : CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是1/O密集型运算,执行优先级会提高
- STIME :进程启动的时间
- TTY :完整的终端名称
- TIME : CPU时间
- CMD :启动进程所用的命令和参数
终止进程
kill [选项] 进程号 (通过进程号终止进程)
killall 进程名称 (通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢
时很有用)
常用选项
-9 :强迫进程立即停止
案例
- 踢掉某个非法登录用户
kill进程号,如kill 11421
- 终止远程登录服务sshd,在适当时候再次重启sshd服务
kill sshd 对应的进程号; 重启登录的服务 /bin/systemctl start sshd.service
- 终止多个gedit
killall gedit (根据进程名称终止)
查看进程树
pstree [选项] ,可以更加直观的来看进程信息
常用选项
- -p :显示进程的PID
- -u :显示进程的所属用户
服务管理—service
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld监听的端口号是3306外部要调用linux内mysql时就会去找到服务的端口号才能调用 , sshd防火墙等),又称为守护进程
service管理指令
- service 服务名[start | stop| restart| reload| status]
- 在CentOS7.0后 很多服务不再使用service ,而是systemctl
- service 指令管理的服务在/etc/init.d查看
查看服务名
方式1 :使用 setup 指令->系统服务就可以看到全音。
方式2: /etc/init.d 看到service指令管理的服务
服务的运行级别(runlevel)
Linux系统有 7种运行级别(runlevel) :
0 :系统停机状态,系统默认运行级别不能设为0 ,否则不能正常启动
1 :单用户工作状态, root权限,用于系统维护,禁止远程登陆
2 :多用户状态(没有NFS),不支持网络
3 :完全的多用户状态(有NFS),登陆后进入控制台命令行模式
4 :系统未使用,保留
5 : X11控制台,登陆后进入图形GUI模式
6 :系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
切换不同的运行级别
init [0123456]
查看当前运行级别
systemctl get-default
修改默认运行级别
systemctl set-default TARGET.target
(3级别:multi-user.target 5级别:graphical.target)
开机流程:
chkconfig指令
通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭
chkconfig指令管理的服务在/etc/init.d 查看
基本语法
查看服务
chkconfig —list [| grep xxx]
chkconfig 服务名 —list
设置某个服务在某个级别的自启动
chkconfig —level 5 服务名 on/off
注:重新设置服务的自启动后,需要重启机器生效
systemctl管理指令
基本语法
systemctl [start| stop | restart | status] 服务名
systemctl 指令管理的服务在 /usr/lib/systemd/system查看
systemctl设置服务的自启动状态
- systemctl list-unit-files [I grep服务名] (查看服务开机启动状态,grep可以进行过滤)
- systemctl enable 服务名 (设置服务开机启动)
- systemctl disable 服务名 (关闭服务开机启动)
- systemctl status 服务名 (查看服务状态)
- systemctl is- enabled 服务名 (查询某个服务是否是自启动的)
例:查看防火墙的状态
systemctl status firewalld
注:
- 关闭或者启用防火墙后,立即生效。
- windows客户端 telnet 测试某个端口即可
- 如果要设置某个服务自启动或关闭永久生效,要使用 systemctl [enable|disable] 服务名
firewall指令
生产环境中,往往需要将防火墙打开;那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。
firewall指令
打开端口: firewall-cmd —permanent —add-port=端口号/协议
关闭端口: firewall-cmd —permanent —remove-port=端口号/协议
重新载入才能生效: firewall-cmd —reload
查询端口是否开放: firewall-cmd —query-port=端口/协议
注:netstat -anp | more 查看端口协议
动态监控进程
top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程
基本语法
top [选项]
选项说明:
- -d 秒数:指定top命令每隔几秒更新。默认是3秒
- -i:使top不显示任何闲置或者僵死进程
- -P:通过指定监控进程ID来仅仅监控某个进程的状态
操作(直接在top显示的页面输入):
- P:以CPU使用率排序,默认就是此项
- M:以内存的使用率排序
- N:以PID排序
- q:退出top
- u:监控指定的用户
- k:结束指定的进程
监控网络状态-netstat
查看系统网络情况netstat
基本语法
netstat [选项]
选项
- -a:显示所有的套接字
- -n:直接使用IP地址
- -P:显示哪个进程在调用
- -t:显示TCP传输协议的连线状况
- -l:显示监控中的服务器的Socket
检测主机连接命令ping
一种网络检测检测工具,它主要是用检测远程主机是否正常,或是两部主机间的网线或网卡故障。
ping ip地址
tcpdump
命令行的网络流量工具,一般用来抓tcp的包
选项
- -i:指定网络截面送出数据包
例:抓取经过所有网卡,目标地址是百度的网络数据
tcpdump -i any host www.baidu.com
