linux 如何暂停和恢复进程 How to suspend and resume processes

In the bash terminal you can hit Control + Z to suspend any running process... then you can type fg to resume the process.

当你在指令界面时你可以利用 Control + Z 来终止你当前的进程,然后再输入 fg 来恢复它。

Is it possible to suspend a process if you only have it's PID? And if so, what command should you use?

但是如果你想仅通过 PID 号来操作应该怎么办呢

 

来看下面的说明:

You can use kill to stop the process.

你可以使用 kill 来操作(不要认为它只能 杀死进程)

For a 'polite' stop to the process (prefer this for normal use), send SIGTSTP:

可以利用  kill -TSTP 指令

kill -TSTP [pid]

For a 'hard' stop, send SIGSTOP:

或者利用  kill -STOP 指令

kill -STOP [pid]

Note that:

if the process you are trying to stop by PID is in your shell's job table, it may remain visible there, but terminated, until the process is fg'd again.

 

To resume execution of the process, sent SIGCONT:

恢复进程利用 kill -CONT

kill -CONT [pid]

就是这么简单!

再补充几个常用的 kill 指令

kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。

kill -9 -1
终止你拥有的全部进程。

ps 的常见参数分析

常用参数
-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 操作格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行

au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)

STAT: 该行程的状态:
D: 不可中断的静止
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)

START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

进程STAT状态:

D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行,在可中断队列中;
S 处于休眠状态,静止状态;
T 停止或被追踪,暂停执行;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程;
Z 僵尸进程不存在但暂时无法消除;
W: 没有足够的记忆体分页可分配
WCHAN 正在等待的进程资源;
<: 高优先级进程
N: 低优先序进程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存

s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;

 

posted @ 2020-11-04 20:15  桑中子衿  阅读(1242)  评论(0编辑  收藏  举报