《Linux基础》06. 进程管理 · 服务管理
@
本文以 CentOS7.6 为例
1:进程管理
在 Linux 中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID(pid,进程号)。
每个进程都可能以两种方式存在:前台与后台。
前台进程就是用户目前的屏幕上可以进行操作的程序。后台进程则是实际在运行,但在屏幕上看不到的程序。
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
1.1:查看进程
1.1.1:ps
功能描述:显示当前进程的状态。(process status)
由于查询到的信息很多,常搭配 grep 使用。
基本语法:
ps [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| -a | 显示当前终端下的所有进程信息。 |
| -u | 以用户的格式显示进程信息。 |
| -x | 显示后台进程运行的参数。 |
| -e | 显示系统内的所有进程信息。 |
| -f | 以全格式显示,且显示父进程 pid。 |
查询结果说明:
| 字段 | 说明 |
|---|---|
| USER | 用户名称 |
| PID | 进程号 |
| %CPU | 进程占用 CPU 的百分比 |
| %MEM | 进程占用物理内存的百分比 |
| VSZ | 进程占用的虚拟内存大小(单位:KB) |
| RSS | 进程占用的物理内存大小(单位:KB) |
| TTY | 终端名称 |
| STAT | 进程状态。S:睡眠;s:表示该进程是会话的先导进程;N:表示进程拥有比普通优先级更低的优先级;R:正在运行;D:短期等待;Z:僵死进程;T:被跟踪或者被停止 |
| STARTED | 进程的启动时间 |
| TIME | 进程占用 CPU 的总时间 |
| COMMAND | 启动进程所用的命令和参数 |
| PPID | 父进程 pid |
| UID | 用户 ID |
| C | CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高 |
| STIME | 进程启动的时间 |
示例:
# 仅查看和 sshd 有关的进程信息
ps -aux | grep sshd

# 查看 sshd 的父进程信息
ps -ef | grep sshd

1.1.2:pstree
功能描述:将所有进程以树状图显示。(display a tree of processes)
基本语法:
pstree [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| -p | 显示进程的 PID |
| -u | 显示进程的所属用户 |
1.1.3:top
功能描述:用于实时监控进程状态。在监控时也可以进行交互操作。
基本语法:
top [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| -d 数字 | 指定每隔几秒更新。(默认3秒) |
| -i | 不显示闲置或僵死进程。 |
| -p 数字 | 显示指定进程号的进程信息。 |
| -n 数字 | 指定更新次数,完成后将会退出 top。 |
| -s | 安全模式,取消交互,避免潜在危机。 |
交互操作:
| 操作 | 说明 |
|---|---|
| 【shift】+【P】 | 以 CPU 使用率排序。 |
| 【shift】+【M】 | 以内存使用率排序。 |
| 【shift】+【N】 | 以 pid 排序。 |
| 按【u】,输入用户名后按【enter】 | 监视特定用户。 |
| 按【k】,输入 pid 后按【enter】,再输入相应数字后按【enter】 | 终止指定的进程。 |
| 【q】 | 退出 top。 |
1.2:终止进程
如果某个进程执行中需要停止,或是已消了很大的系统资源,此时可以考虑停止该进程。
1.2.1:kill
功能描述:用于终止执行中的程序或工作。
kill 命令其实是向进程发送信号,可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。可使用 SIGKILL(9)信息尝试强制删除程序。
基本语法:
kill [选项] 进程
进程可用进程号(pid)或进程名称表示。
常用选项:
| 参数 | 说明 |
|---|---|
| -9 或 -KILL | 强制终止进程。 |
1.2.2:killall
功能描述:终止指定名字的所有进程。
kill 命令通过 pid 终止指定进程需要配合 ps 使用,而 killall 直接通过进程名操作,更加方便。
基本语法:
killall 进程名
常用选项:
| 参数 | 说明 |
|---|---|
| -9 | 强制终止进程。 |
| -e | 进程需要和名字完全相符。 |
| -I(大写i) | 忽略大小写。 |
2:服务管理
服务(service)本质就是进程,但是运行在后台,通常会监听某个端口,等待其它程序的请求,(比如 mysqld、sshd、防火墙等),因此又称为守护进程。
2.1:运行级别
运行级别(Running Level),也可以称之为运行模式。
Linux系统有7个运行级别,用数字0~6表示:
| 运行级别 | 说明 |
|---|---|
| 0 | 系统停机状态。其实就是关机 |
| 1 | 单用户工作状态。为 root 权限,用于系统维护 |
| 2 | 多用户状态,没有 NFS(Network File Syetem)。即没有网络服务的多用户状态 |
| 3 | 完全的多用户状态,有 NFS。即有网络服务的多用户状态 |
| 4 | 被保留的模式。没有被使用的模式 |
| 5 | X11控制台,完整的图形化界面模式。就是图形界面模式 |
| 6 | 系统正常关闭并重启状态。其实就是重启 |
切换运行级别:
init 运行级别
init 指令需要超级管理员的权限,普通用户无法执行。
系统运行级别配置文件,存放在 /etc/inittab。
2.2:服务查看
- 方式一:
在 /etc/init.d/ 下查看部分服务。(这部分服务可由 service、chkconfig 与 systemctl 指令管理)
指令:ls -l /etc/init.d
在 /usr/lib/systemd/system/ 下查看部分服务。(可由 systemctl 指令管理)
指令:ls -l /usr/lib/systemd/system
- 方式二:
查看全部系统服务:
setup
2.3:服务管理指令
2.3.1:service
功能描述:可用于部分系统服务管理。
在 Linux 新版本后,很多服务不再使用 service,而是 systemctl。
基本语法:
service 服务名 [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| start | 开启服务。 |
| stop | 关闭服务。 |
| restart | 重启服务。 |
| reload | 重载服务。 |
| status | 查看服务状态。 |
2.3.2:chkconfig
功能描述:可以设置部分服务在不同运行级别下是否自启动。
也可用 systemctl 进行平替。
基本语法:
chkconfig [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| --list | 查看由 chkconfig 管理的指令。 |
| 服务名 状态 | 管理某一服务。“ on ” 为开启,“ off ” 为关闭。 |
| --level 运行级别 服务名 状态 | 设置服务在某一运行级别下是否自启动。“ on ” 为自启动,“ off ” 为关闭自启动。 |
2.3.3:systemctl
功能描述:用于服务管理。
systemctl 命令兼容了 service 与 chkconfig。
基本语法:
systemctl [选项]
常用选项:
| 参数 | 说明 |
|---|---|
| start 服务名 | 开启服务。 |
| stop 服务名 | 关闭服务。 |
| restart 服务名 | 重启服务。 |
| status 服务名 | 查看服务状态。 |
| list-unit-files | 查看所有服务开机自启动状态 |
| is-enabled 服务名 | 查询某个服务是否开机自启动。 |
| enable 服务名 | 打开服务开机启动。 |
| disable 服务名 | 关闭服务开机启动。 |
谦,美德也,过谦者怀诈。默,懿行也,过默者藏奸。
——《格言联璧》(清)金缨
《Linux基础》06. 进程管理 · 服务管理的更多相关文章
- Linux系统服务管理 服务管理
Linux独立服务管理 启动服务 systemctl start 服务名称.service 设置开机自启动 systemctl enable 服务名称.service 停止开机自启动 systemct ...
- linux入门系列11--Centos7网络服务管理
通过前面文章的学习已经掌握了Linux系统配置管理的知识,本文讲解Centos7网络配置知识. Linux要对外提供服务,需要保证网络通信正常,因此需要正确配置网络参数.本文将讲解如何使用Networ ...
- linux基础之用户及用户组管理
本节内容 用户管理 1. 为什么需要用户? 1.linux是一个多用户系统 2.权限管理(权限最小化) 2. 用户相关文件 /etc/passwd -->用户基本信息 /etc/shadow - ...
- Linux命令应用大词典-第23章 进程和服务管理
23.1 ps:报告当前进程的快照 23.2 top:显示当前正在运行的进程 23.3 pgrep:按名称和其他属性查找进程 23.4 pidof:查找正在运行的进程的进程号 23.5 pstree: ...
- Linux基础学习笔记2-文件管理和重定向
本节内容 1)文件系统结构元素 2)创建和查看文件 3)复制.转移和删除文件 4)软和硬链接 5)三种I/O设备 6)把I/O重定向至文件 7)使用管道 文件系统和结构 文件系统 文件和目录被组织成一 ...
- Linux 基础教程 35-软件包管理-YUM
YUM基础 使用RPM在Linux中安装.卸载软件或服务进会经常碰到RPM包的依赖,而我们在安装软件A时,提示依赖于软件B,安装软件B时又会出现提示依赖于软件C等一系列的依赖关系.这时大家会提 ...
- Linux基础3(用户/组管理,rpm,yum,源码安装软件)
用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...
- Linux基础学习笔记5-软件管理
包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器: debian:deb文件.dpkg包管理器 redhat:rpm文件.rpm包管理器 rpm:Redhat ...
- Linux 基础教程 34-软件包管理-RPM
对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础 RPM(RedHat Package ...
- linux 基础9-账号与身份管理
1. linux的账号与群组 1.1 账户名称:/etc/passwd: head -n 5 /etc/password #取前5行 账号名称,对应UID 密码,早期是在这里,后来转到了/etc/sh ...
随机推荐
- Abp Vnext 动态(静态)API客户端源码解析
根据以往的经验,通过接口远程调用服务的原理大致如下: 服务端:根据接口定义方法的签名生成路由,并暴露Api. 客户端:根据接口定义方法的签名生成请求,通过HTTPClient调用. 这种经验可以用来理 ...
- linux 系统安全和应用
目录 一.系统安全 二.账号安全 三.修改密码生效时间 四.强制下次登录成功时修改密码 五.历史命令 六.终端自动注销 七.wheel组 八.grub菜单密码 一.系统安全 原因:1.系统数据想要保护 ...
- ES5 apply与call详解
虽然es6已经出台了很多简单的方法替代了apply和call,但是还是有很多老大项目使用到了es5的这些方法,所以对于这些方法的掌握是有必要的 先回顾一下官方对apply.call的诠释 apply方 ...
- 代码随想录算法训练营Day2|977有序数组的平方 209.长度最小的子数组 59螺旋矩阵Ⅱ(C++)
LeetCode刷题,代码随想录算法训练营Day2 977.有序数组的平方 题目链接 : 977.有序数组的平方 题目思路:关键在于双指针思想的应用 输入:nums = [-4,-1,0,3,10] ...
- Kubernetes 证书详解(鉴权)
Kubernetes 证书详解(鉴权) 简介 上一篇 系统分析了 Kubernetes 集群中每个证书的作用和证书认证的原理.对于 Kube-apiserver,Kubelet 来说,它们都能提供 H ...
- Java(命令行传参、可变参数、递归
1.命令行传参 通过命令行传参,main也可以传参 public class Hello { public static void main(String[] args) { for (int i = ...
- day08-SpringCloud Gateway-服务网关
SpringCloud Gateway-服务网关 1.Gateway介绍 1.1引出问题 没有使用网关服务时: 使用网关服务后: 1.2Gateway网络拓扑图 1.3Gateway是什么 官网:Sp ...
- ASP.NET Core 6框架揭秘实例演示[38]:两种不同的限流策略
承载ASP.NET应用的服务器资源总是有限的,短时间内涌入过多的请求可能会瞬间耗尽可用资源并导致宕机.为了解决这个问题,我们需要在服务端设置一个阀门将并发处理的请求数量限制在一个可控的范围,即使会导致 ...
- 【Unity3D】魔方
1 需求实现 绘制魔方 中基于OpenGL ES 实现了魔方的绘制,实现较复杂,本文基于 Unity3D 实现了 2 ~ 10 阶魔方的整体旋转和局部旋转. 本文完整代码资源见→基于 Unit ...
- R语言中的跨平台支持:如何在Windows、MacOS和Linux上使用R语言进行数据分析和可视化
目录 当今数据科学领域,R语言已经成为了数据分析和可视化的流行工具.R语言具有强大的功能和灵活性,使得它可以在各种不同的平台上运行,包括Windows.MacOS和Linux.因此,本文将介绍R语言中 ...