【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 c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
37 0
|
3月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
652 2
|
3月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
69 2
|
17天前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
50 4
linux进程管理万字详解!!!
|
8天前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
47 8
|
16天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
52 4
|
17天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
19天前
|
消息中间件 存储 Linux
|
25天前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
31 1
|
1月前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
【10月更文挑战第9天】本文将深入浅出地介绍Linux系统中的进程管理机制,包括进程的概念、状态、调度以及如何在Linux环境下进行进程控制。我们将通过直观的语言和生动的比喻,让读者轻松掌握这一核心概念。文章不仅适合初学者构建基础,也能帮助有经验的用户加深对进程管理的理解。
23 1