linux 进程已杀未释放资源,Linux 作业和进程

一、处理信号

Linux利用信号与运行在系统中的进程进行通信,进程的信号就是预定义好的一个消息,进程能识别它并决定是忽略还是做出反应。进程如何处理信号是由开发人员通过编程来决定的,大多数编写完善的程序都能接收和处理标准Unix进程信号。Linux进程信号如下:

信号

名称

描述

1

SIGHUP

挂起进程

2

SIGINT

终止进程

3

SIGQUIT

停止进程

9

SIGKILL

无条件终止进程

15

SIGTERM

尽可能终止进程

17

SIGSTOP

无条件停止进程,但不是终止进程

18

SIGTSTP

停止或暂停进程,但不终止进程

19

SIGCONT

继续运行停止的进程

~

进程和作业的区别:

区别:进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。

关系:一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。

用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。

1. 生成信号

bash shell允许用键盘上的组合键生成两种基本的Linux信号,在需要停止或暂停失控程序时非常方便。

1. 中断进程

CTRL+C组合键会生成SIGINT信号,并将其发送给当前shell中运行的所有进程。

linux 进程已杀未释放资源,Linux 作业和进程_第1张图片

如图,执行sleep过程中,使用CTRL+C可以中断此sleep命令。

2. 暂停进程

你可以在程序运行期间暂停进程,而无需终止它。CTRL+Z会生成一个SIGTSTP信号,停止shell中运行的任何进程。停止和终止进程不同:停止进程会让程序继续保留在内存中,并能从上次暂停的位置继续运行。

linux 进程已杀未释放资源,Linux 作业和进程_第2张图片

同理,我们使用CTRL+Z时,可以发现此进程是暂停了,使用kill命令发送SIGKILL信号可以将其终止。

二、后台模式运行脚本

以后台模式运行脚本或命令非常简单,只需要在命令后加一个&符号就可以了。如下示例:

linux 进程已杀未释放资源,Linux 作业和进程_第3张图片

加上了&符号的sleep命令后,显示的第一行为作业号和PID,Linux系统中每个进程都有唯一的PID。此时用jobs命令查看,会发现它正在running状态。当其运行完以后运行jobs可以发现

你可能感兴趣的:(linux,进程已杀未释放资源)