9.管好进程和服务

1.查看进程

1.进程分类
进程一般分为交互进程、批处理进程和守护进程三类。上述三种进程各有各
的作用,使用场合也有所不同。
 交互进程:由一个 shell 启动的进程。交互进程既可以在前台运行,也可以在后台运行。
 批处理进程:这种进程和终端没有联系,是一个进程序列。
 守护进程:Linux 系统启动时启动的进程,并在后台运行(守护进程一般是由系统在开机时通过一个叫做 init 的脚本自动激活启动或超级管理用户 root 来启动)

2.进程的 描述符
进程描述符(Process Descriptor),顾名思义,就是进程的描述,即用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)

USER  启动进程用户
PID  进程标志号
PPID  父进程的 ID,父子进程的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。
%CPU  运行该进程占用 CPU 的时间与该进程总的运行时间的比例
%MEM  该进程占用内存和总内存的比例
VSZ  占用的虚拟内存大小
RSS  进程占用的物理内存值
TTY  进程建立时所对应的终端,“?”表示该进程不占用终端
STAT  进程的状态, 状态分为

  D,不可中断的睡眠;
  R,就绪(在可运行队列中);
  S,睡眠;
  T,被跟踪或停止;
  Z,终止(僵死)的进程
  W,没有足够的内存分页可分配;
    < 高优先序的进程;
    N,低优先序的进程;
    L,有内存分页分配并锁在内存体内(实时系统或 I/O)。
    + 位于后台的进程
    s 进程的领导者(在它之下有子进程);

START  为进程开始时间
TIME  为执行的时间
COMMAND 是对应的命令名

3.ps [选项]
查看系统中进程的状态
 l 长格式输出;
 u 按用户名和启动时间的顺序来显示进程;
 j 用任务格式来显示进程;
 f 用树形格式来显示进程;
 a/-A 显示所有用户的所有进程(包括其它用户);
 x 显示无控制终端的进程;
 r 显示运行中的进程;
 --sort [+|-] 字段名 按指定字段对 ps 输出进行排序,+表示升序,-表示降序, “+”字符是可选的,因为默认按升序排列

ps 命令经常与 grep 命令一起使用来查找特定的进程

4.top 是动态监视系统进程的工具,在默认情况下,top 命令每3 秒钟刷新一次

top [选项]
动态查看系统中进程的状态
 -d:指定更新的间隔,以秒为单位。
 -q:没有任何延迟的更新。如果使用者有超级用户,则 top 命令将会以最高的优先序执行

    -c:显示进程完整的路径与名称。
还可以使用快捷键与 top 命令进行交互,常用的快捷键包括:
 space 立即更新
 >  向下翻页,向左一个关键字排序
 <  向上翻页
 T  按进程运行时间进行排序,降序
 M 按内存占用情况排序,降序
 N 以进程 ID 排序,降序
 P  按 CPU 占用情况排序,降序(默认)
 R 反向排序
 k 结束指定进程

    q退出

2.操纵进程

1.kill [-signal] pid
kill 命令终止一个进程。

     pid:进程的 PID 号
 -signal:表示向进程发出的信号,如果没有指定任何信号,默认发送的信号为 SIGTERM(-15),可将指定进程终止。若仍无法终止该进程,可使用更强力的 SIGKILL(-9)信号尝试强制终止进程

    kill -l  列出能发送的所有信号

2.kill 命令的工作原理是,向 Linux 系统的内核发送一个系统操作信号和某个程序的进程标志号,然后系统内核就可以对进程标志号指定的进程进行操作。
当需要终止一个前台进程的时候,通常使用 ctrl+c 组合键;但是对于一个后台进程就必须使用 kill 命令。
另外应用的场合就是在服务器管理中,对于服务器主进程,最好是按其正常的程序关闭,而不是用 kill 这样危险的动作。

3.pkill有选择性的向一个或一批进程发出信号,可根据进程名称,拥有者(-u)

xkill图形界面的kill,鼠标变成十字,点击要关闭的进程

3.查看和操控系统服务

1.Linux 下的守护进程按照服务类型可以分为两类:

一类是系统守护进程,为系统提供某种重要的功能,如 atd、cron、lpd、syslogd、login 等。

另一类是网络守护进程,向用户提供某种网络服务,如 sshd、httpd、sendmail、xinetd 等

2.按照工作模式也可以分为两类:
(1)独立守护进程(stand-alone daemon)所谓独立守护进程,就是该守护进程可以独立运行,守护进程常驻内存,响应快,无服务启动时间。所有独立运行守护进程的脚本在/etc/rc.d/init.d/目录下,由 init 脚本负责管理。
(2)超级守护进程(super daemon)RHEL 使用的超级守护进程叫做 xinted(eXtended InterNET Daemon)。xinted 是一个非常特殊的守护进程,xinetd 能够同时监听多个指定的端口,在接受用户请求时,他能够根据用户请求的端口不同,再来启动不同的网络服务进程来处理这些用户请求。可以把 xinetd 看做一个管理守护进程的守护进程,它
决定把一个客户请求交给那个程序处理,然后启动相应的守护进程。

3.netstat 命令是一个监控本机网络端口状态的非常有用的工具

netstat [选项] [参数]
输出网络连接, 路由表, 接口统计数据, 伪连接,及多播成员相关信息
 -r  显示路由表
 -I  显示网络接口的连接情况(可以加上 eth0、lo 等参数)
 -s 显示 IP、ICMP、IcmpMsg、TCP、UDP、UdpLite、TcpExt、IpExt的统计信息
 -n 以数字形式显示地址和端口号
 -p 显示 PID/Program name
 -l  显示监听端口
 -a 显示所有连接和监听端口
 -t  显示 TCP 传输协议的连线状况
 -u 显示 UDP 传输协议的连线状况
 -e 显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。

输 出 主 要 分 为 两 部 分 :

第 一 部 分 是 活 动 网 络 连 接 (Active Internetconnections),显示的都是 TCP/IP 网络连接,默认有 5 个字段:

Proto  连接使用的协议,主要就是 TCP 和 UDP 两种。
Recv-Q  尚未接收的字节数。
Send-Q  尚未发送到目标的字节数。
Local Address本地或源的地址和端口,可以是 “主机 IP:端口号”(使用-n 选项时), 也可以是“完整的主机名:端口名称”。其中如果 IP 地址为“0.0.0.0”或者主机名为“*”就表示在所有链接的相应端口,如“00.0.0.0:22”就表示在本机所有链接的 22 端口上都进行监听。
Foreign Address  目标地址和端口。
State  当前 socket 连接的状态
  ESTABLISHED - 连接已建立;
  SYN_SENT:正在尝试建立连接 (发出 SYN标志) ;
  SYN_RECV:接收到一个连接建立请求
  FIN_WAIT1: socket 关闭,连接中断中;
  FIN_WAIT2:连接已中断,但 socket 正在等待对方回应;
  TIME_WAIT:连接已中断,socket 仍在等待,以处理仍然存在在网络中的包;
  LISTEN - 已建立监听,socket 正在监听端口输入,但尚未建立连接。

第二部分是活动 Unix 域套接字(Active UNIX domain sockets),显示的都是本地进程间通信的套接字

4.Linux 系统下共定义了 65536 个可用端口 ,这些端口又分为两部分,
分别是:
(A)只有 root 用户才能启用的 port,0—1023 端口,需要用 root 身份才能启用,这些端口主要用于系统的常见(well known)通信服务(如 http 服务使用 80 端口,ftp 服务使用 21 端口等等);
(B)1024—65535 是给客户端软件使用的,客户端 port 不受 root用户限制,例如 mysql 端口为 3306,可以由 mysql 用户启用;例如Oracle 端口为 1521,可以由 Oracle 用户启用;又例如用网络浏览器浏览网页。浏览器需先从本地启用一个大于或等于1024的随机端口,然后去连接 web 服务端的 80 端口

5.service [服务脚本名] [动作命令]
service 命令用于对系统服务进行操纵,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等,service 命令本身是一个 shell 脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务,sevice
 service 服务脚本名 打印指定服务的命令行使用帮助。
 service 服务脚本名 start  启动指定的系统服务
 service 服务脚本名 status 查看指定的系统服务状态
 service 服务脚本名 stop  停止指定的系统服务
 service 服务脚本名 restart 重新启动指定的系统服务,即先停止然后再启动。

6.设置防火墙端口

打开防火墙的配置文件/etc/sysconfig/iptables,在其中添加上如下所示一行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

7.chkconfig --list” 命令显示系统服务列表,以及这些服务在运行级别 0 到 6 中已被启动(on)还是停止(off)

运行级别(runlevel)就是 Linux 当前正在运行的功能级别。这些级别定义在/ect/inittab 文件中。一般来说 Linux 都会提供从 0 到 6 共七个运行级别,其中 3 个是基本运行级别,3 个是其他运行级别,1 个保留

0  关闭(或停止)系统
1  单用户模式;通常别称为 s 或 S

2  没有联网的多用户模式
3  联网的多用户模式
4  保留暂未使用
5  联网并且使用图形界面的多用户模式
6  重启系统

在不同运行级别下可以定义启动不同的系统服务
 可以使用 runlevel 命令来查看当前运行级别,也可以用 init N(N 为0-6 之间的数字)来切换运行级别

chkconfig --level  num(运行级别)  服务名 on: 启动服务

原文地址:https://www.cnblogs.com/Wang-Y/p/8459875.html