进程 —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防火墙等),又称为守护进程
image.png

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)

开机流程:
image.png

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设置服务的自启动状态

  1. systemctl list-unit-files [I grep服务名] (查看服务开机启动状态,grep可以进行过滤)
  2. systemctl enable 服务名 (设置服务开机启动)
  3. systemctl disable 服务名 (关闭服务开机启动)
  4. systemctl status 服务名 (查看服务状态)
  5. 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