【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'

相关文章
|
2月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
145 2
|
2月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
47 2
|
8天前
|
Linux Shell
6-9|linux查询现在运行的进程
6-9|linux查询现在运行的进程
|
2月前
|
消息中间件 Linux 开发者
Linux进程间通信秘籍:管道、消息队列、信号量,一文让你彻底解锁!
【8月更文挑战第25天】本文概述了Linux系统中常用的五种进程间通信(IPC)模式:管道、消息队列、信号量、共享内存与套接字。通过示例代码展示了每种模式的应用场景。了解这些IPC机制及其特点有助于开发者根据具体需求选择合适的通信方式,促进多进程间的高效协作。
78 3
|
2月前
|
消息中间件 Linux
Linux进程间通信
Linux进程间通信
36 1
|
2月前
|
C语言
Linux0.11 系统调用进程创建与执行(九)(下)
Linux0.11 系统调用进程创建与执行(九)
26 1
|
2月前
|
存储 Linux 索引
Linux0.11 系统调用进程创建与执行(九)(上)
Linux0.11 系统调用进程创建与执行(九)
48 1
|
2月前
|
Web App开发 Linux
在Linux中,如何杀死一个进程?
在Linux中,如何杀死一个进程?
|
2月前
|
域名解析 监控 安全
在Linux中,什么是守护进程,它们是如何工作的?
在Linux中,什么是守护进程,它们是如何工作的?
|
2月前
|
消息中间件 Linux
在Linux中,进程间通信方式有哪些?
在Linux中,进程间通信方式有哪些?
下一篇
无影云桌面