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中运行的所有进程。

c742bcc01cc12bea7f16e08fe0342f09.png

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

2. 暂停进程

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

43c6d180006f40ddb893b26f349d1c41.png

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

二、后台模式运行脚本

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

3dd2a6542f03e7c54f43d588677afd45.png

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值