引言

在Linux 中,每个执行的程序(代码)都成为一个进程,Linux 为每一个进程分配了一个唯一的 id 号 - PID

每个进程都会对应一个父进程,而这个父进程可以复制多个子进程,例如 www 服务器。

每个进程都可能以两种方式存在 - 前台/ 后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常运行在管理员无法感知的后台。

一般系统服务都是以后台进程的形式存在,比如 sshd 服务进程,其中的 d 代表 daemon (守护进程),而且会常驻在系统中,如果不进行特殊操作,一般只有在关机时才会终止。

一、显示系统中的进程列表

基本语法:

ps -aux

一般使用 ps 指令都会带上参数,-a 代表 all 所有进程;-u 代表 user 以用户格式显示;-x 代表显示后台进程运行参数

字段详解:

USER - 进程的用户名

PID - 进程 ID

%CPU - 占用 CPU 百分比

%MEM - 占用物理内存百分比

VSZ - 使用的虚拟内存大小(单位:KB)

RSS - 使用的物理内存大小(单位:KB)

TTY - 终端名称,缩写

STAT - 进程状态,S - 睡眠,s - 表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或被停止。

START - 进程启动时间

TIME - 进程占用 CPU 总时间

COMMAND - 进程执行时的命令行,过长的话可能会截断显示

另外,ps -aux 还可以通过管道符和过滤命令  “| grep 进程名”   来专门查找指定进程的详情信息:

可以看到上面的途中,查看ssh 进程的信息,显示结果中,第一行是 sshd 后台进程,因为它在启动时使用了 /usr/sbin/sshd 命令。而最后一行可以看到使用的是 grep ssh ,也就是我们正在查询时开启的一个进程。第二和第三行是通过外部的 ssh 终端设备连接进来而开启的后台进程,第四行则是一个 sftp 相关的后台进程。

有趣的是,如果我通过 kill -9 杀掉 3362 进程,那么远程终端的文件视图就会连接中断,同时第四行的 sftp 后台进程也会终止:

终端命令行依然可以操作,由此可见进程列表中显示的信息与实际的进程情况完全匹配。

二、查看父进程

还有一种查询进程的方式是:

ps -ef

这句指令的意思是“全格式显示所有进程,包括父进程”。一般也会配合 管道符 “|” 和 筛选指令 grep 、分页指令 more 等一起使用。

PPID 就是父进程的 PID 。

C 代表CPU 用于计算执行优先级的因子。数值越大,表名进程是 CPU 密集型运算,执行优先级会降低;数值越小,表名进程是 IO 密集型运算,执行优先级会提高。

STIME 进程启动的时间

TTY  终端名称

TIME  CPU 占用时间

CMD  启动进程所用的命令和参数

三、终止进程

基本语法:

kill  参数  进程PID

常用参数: -9。

Linux 中的 kill 指令用来终止指定进程的运行。

通常,终止一个前台进程只需要 Ctrl + C ,但是对于一个后台进程就需要使用 kill 指令,并且要先查看我们想要终止进程的 PID。

我们来使用 man kill 来查看一下 kill  的使用手册:

在描述中的第一段话意思是这样的:

指令 kill 发送特定的信号给特定的进程或进程组。如果没有指定信号,那么就会发送 TERM 信号。TERM 信号会杀死那些没有捕获这个信号的进程。对于其他的进程,可能有必要使用 KILL(9) 信号,因为这个信号不会被捕获。

在 kill 说明中有一个参数 是 -l  可以列出所有的可发送信号:

因此,kill -9 的含义就是强制杀死进程。

四、服务管理

服务的本质其实就是进程,但是运行于后台,通常会监听某个端口,等待其他程序的请求,比如mysqld,sshd 防火墙等,因此我们又称为守护进程

4.1 service指令

在CentOS 7之前都是通过 service 指令来管理后台系统服务,CentOS7 之后,采用systemctl 指令来进行管理。这里讲解 service 的用法,后期会针对 CentOS 7 来进程补充。

基本语法:

service  服务名  start | stop | restart | reload | status

案例:查看Linux 防火墙的情况,关闭并重启防火墙:

可以在宿主机终端采用 telnet 指令来检查端口是否可以连接(国庆期间又装了一个 CentOS 6 ,ip 是200):

4.2 查看Linux自启动服务

在命令行输入 setup 指令并回车即可查看系统自启动服务:

服务名称前面的 [ ] 内如果有 * 号,说明此项服务属于开机自启。

除了这种方式,还可以通过/etc/init.d/服务名称 文件来查看:

不过在这里好像只能看到系统都有哪些服务。

4.3 服务的运行级别

在前面的文章中《Linux进阶之路————Linux运行级别》中,总结了关于Linux 系统运行级别的概念和知识,这里服务的运行级别也和之前的运行级别是一脉相承的。

首先我们知道,Linux 的启动流程是如下所示的:

服务的运行级别对应着系统的运行级别,如果系统当前的运行级别是3,那么5 运行级别的服务就不会开机启动,而需要手动操作。

通过 chkconfig 指令可以给每个服务的各个运行级别设置 自启动/ 关闭,设置之后即生效

常用语法:

chkconfig  --list | grep  服务名   # 查看服务的运行级别状态,过滤处理可选

chkconfig 服务名 --list  # 查看某个服务的运行级别状态

chkconfig  [--level  运行级别编号]  服务名  on | off      # 在某个运行级别下开启或关闭自启动,若不写运行级别,默认全部

案例:关闭所有运行级别下的防火墙服务的自启动:

五、进程监控

Linux 使用 top 命令来进行进程监控。

top 命令和 ps 命令有些类似,它们都用来显示正在执行的进程,但二者又有不同,top 最大的特点在于可以定期刷新进程列表中的状态。

基本语法:

top [选项]

可选参数:

-d 秒数        指定top 命令刷新频率,默认是 3。

-i                   不显示任何闲置或者僵死进程

-p  PID          指定进程ID 的进程状态

当进入到 top 的交互模式中时,可以通过下面一些参数,来与 top 命令进行交互:

P            以CPU 使用率排序,默认是此项

M            以内存使用率排序

N             以 PID 排序

q              退出 top 命令

输入 top 命令可以显示上图中的信息,默认每 3 秒刷新一次,如果按下交互键,在排序的同时可以立即刷新列表。输入q 可以退出 top 。

上图中,up 代表系统启动了多久,2 users 表示当前用户数,load average 应该是平均负载的意思。其余的选项可以网上搜索或见名猜意 (* ̄︶ ̄)。

六、网络监控

6.1 netstat

网络监控采用 netstat 命令。

基本语法:

netstat [选项]

常用参数:

-an   按一定排序输出

-p     显示哪个进程在调用

案例:查看sshd 的服务信息:

可以看到,如果sshd 服务是关闭的状态的话,那么 netstat 也查询不到 sshd 的网络监听状态。

6.2 ping

不论是Windows 还是 Linux ,这个命令都是通用的。它是一种检测网络的工具,可以快速查看远程主机是否可以连通,主机间的介质是否为断,网线是否脱落或网卡故障等。

如果两台主机之间可以正常通信,那么就会显示上图所示,如果通信异常,那么就不会显示时间等信息。

综上,就是关于系统服务相关的知识总结,欢迎文末留言。

Linux进阶之路————进程与服务管理相关推荐

  1. Linux进阶之路————组管理与权限管理

    引言 这篇博客将会总结一些关于组的概念和相关操作,以及文件的一些权限管理. 一.组的基本介绍 在前面的博文<Linux进阶之路----用户管理>已经有提到用户组的概念,实际上,组的概念并不 ...

  2. Linux进阶之路-Ubuntu版

    Linux进阶之路 @[TOC](Linux进阶之路) Linux 简介 概述 Linux 与 Windows 比较 安装 Linux 操作系统 Linux 远程控制管理 概述 OpenSSH XSh ...

  3. linux 下的 service 和systemctl 服务管理方式

    linux 下的 service  和systemctl 服务管理方式 man service 得到:执行一个system V 风格的启动脚本 service - run a System V ini ...

  4. Linux进阶之路————磁盘查询

    引言 承接<Linux进阶之路----Linux磁盘分区与挂载>,本文介绍实际生产中对于磁盘的监控和查询. 一.查询磁盘整体使用情况 基本语法: df -h 该命令会显示包括我们手动挂载的 ...

  5. Linux进阶之路————Linux运行级别(重置密码)

    引言 前面的<Linux进阶之路----开机.重启和用户登录注销>已经简单介绍过Linux系统运行级别的概念,今天来详细介绍和总结一下Linux的运行级别. inittab配置文件 在配置 ...

  6. Linux基础篇——Linux进程、服务管理

    文章目录 1. 什么是进程 2. Linux下进程与执行者的关系(多人多任务环境) 3. 工作(Job)管理 3.1 将指令丢到后端执行 & 3.2 将目前的工作暂停 Ctrl+z 3.3 j ...

  7. linux进程与服务管理,linux基础之进程管理与服务

    进程的状态 进程被称作任务,有4种状态 运行态 运行或准备运行 等待态 可中断(TASK_ITERRUPTIBLE) 不可中断(TASK_UNITERRUPTIBLE) 停止态(TASK_STOPPE ...

  8. Linux进阶之路————用户管理

    引言 前面几篇关于Linux的已经大概领略了Linux的风采,本篇用户管理,将着重总结日常工作中,非常重要的用户管理功能. 主要包括:新增用户.删除用户.查询用户信息.指定/修改密码.切换用户.用户组 ...

  9. OpenHarmony恢复启动子系统init进程之服务管理与发布

    配置文件加载 Jobs 实际上是作为参数使用,作为trigger参数使用. 使用HashMap管理,所有结点按类型存储,通过name获取. 文件 加载类型 说明 /etc/init.cfg Jobs, ...

最新文章

  1. 视频分辨率无损放大软件 Topaz Video Enhance AI 2.3.0
  2. remote: 此仓库的限制大小为: 2048 MB, 您的使用已经超出限额
  3. SSH隧道 / SSH穿透
  4. VS2010解决方案不显示无法添加项目问题
  5. Oracle FGA审计记录的清理步骤
  6. java jdbc(mysql)驱动源码分析_JAVA JDBC(MySQL)驱动源码分析(二)
  7. Dubbo 高危漏洞!原来都是反序列化惹得祸
  8. html css三类选择器,css三类选择器 用法 引用
  9. matlab gui怎样将结果保存_Processing将串行数据保存用作matlab数据分析
  10. python多维列表索引越界怎么处理_Python中remove漏删和索引越界问题的解决
  11. python如何设计工具类_Python面向对象 --- 类的设计和常见的内置方法
  12. 文件操作Python
  13. 空位補零,你會選擇哪種方式?
  14. [渝粤教育] 西南科技大学 铁路交通信号控制 在线考试复习资料
  15. VS找不到System.Web.Extensions.dll的解决办法
  16. 《矩阵分析与应用》(第2版)———知识+Matlab2018a——2nd
  17. 1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。
  18. 专门用来保存图片生成图片链接的工具博文
  19. Qt之自定义QLineEdit右键菜单
  20. 场外模拟 省选联考(B卷) 2020 游记

热门文章

  1. scala中map添加值_如何在Scala Map中反转键和值
  2. scala 函数中嵌套函数_Scala中的嵌套函数 用法和示例
  3. Java字符类isLowerCase()方法与示例
  4. 离散数学关系的性质_关系和关系的性质| 离散数学
  5. 99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏
  6. ReactNative实现图集功能
  7. 精通ASP.NET MVC ——路由
  8. javascript在第三个文本框中显示文字_一段中的个别文字,显示在目录中
  9. decimal类型 go_Go 语言程序设计——字符串类型(2)
  10. okhttp 工具类_日语学习工具推荐,小白必备!