【Linux】进程管理

简介: 【Linux】进程管理
  • ps:报告当前进程快照。
  • top:显示任务。
  • kill:给一个进程发送信号。
  • shutdown:关机或重启系统。

一个程序可以发动另一个程序被表述为一个父进程可以产生一个子进程,内核维护每个进程的信息,以此来保持事情有序,系统分配给每个进程一个数字,这 个数字叫做进程 (process) ID 或 PID。

查看进程

使用ps(process status)可以查看进程。TTY 是 “Teletype”(直译电传打字机) 的简写,是指进程的控制终端;TIME 字段表示进程所消耗的 CPU 时间数量。

# 默认列出与当前终端会话相关的进程
ps

进程状态,输出结果中,标题STAT,是state的简写。

  • R:运行中,这意味着,进程正在运行或准备运行。
  • S:正在睡眠。进程没有运行,而是,正在等待一个事件,比如 说,一个按键或者网络分组。
  • D:不可中断睡眠。进程正在等待 I/O,比方说,一个磁盘驱动器的 I/O。
  • T:已停止,已经指示进程停止运行。
  • Z:一个死进程或“僵尸”进程。这是一个已经终止的子进程, 但是它的父进程还没有清空它
  • <:一个高优先级进程。
  • N:低优先级进程。
# 展示所有进程
ps x
# 显示属于每个用户的进程信息
ps aux

使用top动态查看进程

虽然 ps 命令能够展示许多计算机运行状态的信息,但是它只是提供 ps 命令执行时刻的机器状

态快照。为了看到更多动态的信息,我们使用 top 命令。

top 命令以进程活动顺序显示连续更新的系统进程列表(默认情况下,每三秒钟更新一次)。top 显示结果由两部分组 成:最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。

top

上面的信息就类似于我们桌面的任务管理器,我们可以继续按q或者ctrl-c退出命令。

使用 kill 命令给进程发送信号

使用 kill 命令,可以指定我们想要终止的进程 PID。虽然这个命令看上去很直白,但是它的含义不止于此。这个 kill 命令不是真的“杀死”程 序,而是给程序发送信号。信号是操作系统与程序之间进行通信时所采用的几种方式中的一 种。在使用 Ctrl-c 和 Ctrl-z 的过程中我们已经看到信号的实际用法。当终端接受了其中一个 按键组合后,它会给在前端运行的程序发送一个信号。在使用 Ctrl-c 的情况下,会发送一个叫 做 INT(Interrupt, 中断)的信号;当使用 Ctrl-z 时,则发送一个叫做 TSTP(Terminal Stop, 终端停止)的信号。

kill [-signal] PID...

如果在命令行中没有指定信号,那么默认情况下,发送 TERM(Terminate,终止)信号,常见的一些信号如下:

  • 1 或 HUP:挂起。
  • 2 或 INT:中断。实现和 Ctrl-c 一样的功能,由终端发送,通常, 它会终止一个程序。
  • 9 或 KILL:杀死。当其它 终止信号失败后,再使用它。
  • 15 或 TERM:终止。这是 kill 命令发送的默认信号,如果程序仍然 “活着”,可以接受信号,那么这个它会终止。
  • 18 或 CONT:继续。在一个停止信号后,这个信号会恢复进程的运行。
  • 19 或 STOP:停止。这个信号导致进程停止运行,而不是终止。
  • 3 或 QUIT:退出。
  • 20 或 TSTP:终端停止。当按下 Ctrl-z 组合键后, 终端发送这个信号。

杀死进程

kill -9 13601

关机或重启系统

使用 shutdown 命令用于安全地关闭或重启。

常见的参数

  • -h:将系统的服务停掉之后关闭系统(常用)。
  • -r:将系统的服务停掉之后就重启系统(常用)。
  • -k:不是真的关机,只是发送警告消息出去。

关闭系统(关机)

# 立即关机
shutdown -h now
# 10min 关机
shutdown -h 10
# 10min后关闭系统,并发送一条消息给所有用户
shutdown -h 10 "System will be down for maintenance"

重启系统

# 立即重启
shutdown -r now
# 22:00 重启系统
shutdown -r 22:00

取消计划的关机或重启

# 取消之前计划的 shutdown 操作
shutdown -c

发送警告

# 仅发出警告消息,系统并不会关机
shutdown -k now 'this system will reboot'

相关文章
|
1月前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
80 1
|
12天前
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
72 20
|
3月前
|
资源调度 Linux 调度
Linux c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
57 0
|
1月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
105 13
|
1月前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
2月前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
174 4
linux进程管理万字详解!!!
|
1月前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
2月前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
2月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
97 8
|
2月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
268 1