在本文中,我们将讨论Linux中的过程管理。Linux中的过程只是一个正在运行的程序。
Linux 中的过程类型
在Linux中,进程可以有两种类型:
- 前面流程 取决于用户输入 也称为交互式流程
- 后面流程 独立于用户 称为非交互式或自动流程
Linux 中的进程状态
在 Linux 中,一个过程在创建后和终止前可以经历不同的状态,这些状态是:
- ** Running**
- Sleeping
- ** Interruptible sleep**
- Uninterruptible sleep
- Stopped
- Zombie
- ** Running**状态中的过程意味着它正在运行或正在运行 *过程处于 sleeping状态,等待资源可用
- Interruptible sleep中的过程会唤醒来处理信号,而 Uninterruptible sleep中的过程不会运行 在收到停机信号 ** Zombie状态是当输入过程死时的过程,
Linux 中的流程管理的不同命令
在 Linux 中,有两个命令可用于跟踪运行过程,这两个命令是 Top和 Ps。
1、管理Linux流程的顶级命令
要跟踪机器上的运行过程,您可以使用顶部命令。
1$ top
顶部命令显示了正在实时运行的流程列表,以及它们的内存和CPU使用量。
- PID:为每个进程赋予的唯一进程ID
- 用户:进程所有者的用户名
- PR:在编程过程中给进程的优先级
- **NI:**一个进程的
好
值 - VIRT:进程使用的虚拟内存量
- RES:进程使用的物理内存量
- SHR:与其他进程共享的内存量
S*:进程的状态
-
D
=不间断的睡眠 -Com
=
您可以使用 向上/向下箭头键向上和向下导航整个列表. 要停止按 q. 要杀死一个过程,请用上/向下箭头键突出这个过程,然后按k
。
或者,你也可以使用杀命令,我们稍后会看到。
二、PS命令
ps 命令是进程状态
的缩写,显示当前运行的进程,但与顶部命令不同,生成的输出并非实时。
1$ ps
术语如下:
PID | process ID |
TTY | terminal type |
TIME | total time the process has been running |
CMD | name of the command that launches the process |
若要使用 ps 命令获取更多信息:
1$ ps -u
这里:
- %CPU表示过程所消耗的计算功率量
- %MEM表示过程所消耗的内存量
- STAT表示过程状态
虽然 ps 命令只显示正在运行的进程,但您也可以使用它来列出所有进程。
1$ ps -A
此命令甚至列出了目前不运行的进程。
3、停止一个过程
要在 Linux 中停止一个进程,请使用**kill
命令。 kill command将信号发送到进程中。
您可以发送不同的信号类型,但最常见的信号是kill -9
,即**SIGKILL**
。
您可以列出使用的所有信号:
1$ kill -L
默认信号为 15 个,即 SIGTERM. 也就是说,如果你只使用 kill 命令而没有任何数字,它会发送 SIGTERM 信号。
杀死一个过程的语法是:
1$ kill [pid]
此外,您还可以使用:
1$ kill -9 [pid]
此命令将向进程发送一个SIGKILL
信号,如果进程忽略了正常的杀死请求,则应使用此信号。
4、改变一个过程的优先级
在 Linux 中,您可以在进程之间优先考虑。一个进程的优先考虑值被称为优先考虑
值.一个优先考虑值可以从 -20到 19。
顶部命令的输出中的第四列是优点值的列。
要启动一个流程并给它一个不像默认的好值,请使用:
1$ nice -n [value] [process name]
若要更改正在使用的进程中的好值:
1renice [value] -p 'PID'
结论
本教程涵盖了Linux中的流程管理,主要涵盖了流程管理的实际方面,理论上,流程管理是一个广阔的主题,并将其全部覆盖在本教程的范围之外。