自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Linux 中使用 SIGINT 和其他終止信號

系統(tǒng) Linux
除了發(fā)送 SIGINT 信號(ctrl +c)以外,還有很多其他的終止信號,今天我們就來介紹下終止信號。

你應(yīng)該使用過 ctrl + c 來終止進(jìn)程,但是你知道它會(huì)發(fā)送 SIGINT 信號嗎?

除了發(fā)送 SIGINT 信號(ctrl +c)以外,還有很多其他的終止信號,今天我們就來介紹下終止信號。

在 Linux 中使用終止信號

我們通常使用 kill 命令來終止進(jìn)程,kill 命令可用的信號超過 50 個(gè):

圖片

使用 kill 命令可以使用這些信號代碼來代替信號名稱。比如,如果我們想要停止執(zhí)行某個(gè)進(jìn)程,那么可以使用 SIGTSTP,如下所示:

kill -SIGTSTP %jobID

圖片

以上是使用信號名稱(SIGTSTP),另外也可以使用它對應(yīng)的代碼 20,結(jié)果是相同的,如下:

kill -20 %jobID

圖片

下面我們介紹一些常用的信號,首先看一下 SIGSTP。

使用 SIGSTP 終止進(jìn)程

首先我們從前臺進(jìn)程開始。

與終止后臺進(jìn)程相比,終止前臺進(jìn)程更加簡單,只需要使用綁定的快捷鍵即可。

執(zhí)行 SIGTSTP 的快捷鍵是 ctrl +z。比如,作為演示,我們使用 sleep 命令:

sleep 15000

圖片

上面的例子中,我們使用了 jobs 命令,這是一個(gè)很有用的工具,可以顯示正在運(yùn)行和最近終止的進(jìn)程。

那么,如何終止后臺進(jìn)程呢?需要使用?? kill 命令??,使用 SIGTSTP 指定 PID 或者 JOBID,如下所示:

kill -SIGSTP %jobID

圖片

使用 SIGCONT 恢復(fù)命令執(zhí)行

SIGCONT 可以幫助恢復(fù)最近終止執(zhí)行的命令。如下所示:

kill -SIGCONT %jobID

圖片


使用 SIGINT 終止執(zhí)行

這是我使用最多的用于終止的命令。我們舉個(gè)例子,如下:

圖片

但 SIGINT 也不是萬能的,它在某些地方不起作用,比如 bash 解釋器中。比如,下面這個(gè) bash 腳本用于接受用戶輸入:

#!/bin/bash
trap date SIGINT
read input
echo User input: $input
echo Exiting now

圖片

如上圖所示,當(dāng)我按下 ctrl + c 時(shí),它顯示當(dāng)前的日期和時(shí)間,只有當(dāng)我輸入了某些信息時(shí),它才停止。

使用 SIGQUIT 終止

SIGQUIT 類似于 SIGINT,但它也會(huì)在執(zhí)行前生成一個(gè)核心轉(zhuǎn)儲(chǔ)(core dump)。

簡單地說,核心轉(zhuǎn)儲(chǔ)是在系統(tǒng)崩潰或進(jìn)程終止之前自動(dòng)生成的文件。

它可以通過快捷鍵 ctrl + \ 來觸發(fā),可以用來終止前臺進(jìn)程和后臺進(jìn)程。

看下面的例子:

圖片


上述例子是終止一個(gè)前臺進(jìn)程,那么怎樣用它來終止后臺進(jìn)程呢?看如下語法:

kill -SIGQUIT %jobID

圖片

使用 SIGTERM 終止執(zhí)行

顧名思義,這是一個(gè)終止程序的終止信號,但與 SIGKILL(不管怎樣都會(huì)終止程序)不同,這是要求終止程序相對柔和的方式。

有時(shí)它會(huì)在終止前進(jìn)行清理,其語法如下所示:

kill -SIGTERM %jobID

圖片

使用 SIGKILL 

SIGKILL 可以即時(shí)強(qiáng)制殺掉任何子進(jìn)程。

有時(shí)候,我們可能會(huì)遇到這樣的問題:有些程序根本無法運(yùn)行,而且根本無法終止!

這種情況下,我們就可以使用 SIGKILL 來強(qiáng)制殺掉進(jìn)程。其使用語法如下所示:

kill -SIGKILL %jobID

圖片

責(zé)任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2021-03-14 09:28:24

Linux Shell腳本

2019-09-16 19:00:48

Linux變量

2022-10-25 09:07:28

Linuxxargs命令

2018-05-16 10:32:06

Linux命令find

2018-06-26 09:15:24

Linux命令history

2022-11-18 10:16:26

Linuxwc 命令

2024-11-04 15:30:43

Python裝飾器函數(shù)

2018-01-09 09:00:01

Linux命令文件壓縮

2018-10-09 08:30:55

UbuntuLinuxRAR文件

2023-09-14 15:05:33

grep正則表達(dá)式

2025-01-20 08:40:00

Python對象

2023-10-18 16:30:50

2021-01-13 09:40:26

Linuxexport命令

2017-05-19 13:19:16

LinuxAsciinema終端會(huì)話

2016-08-16 08:26:19

Linuxsignalsigaction

2020-03-20 18:19:05

UbuntuLinuxNetbeans

2020-03-24 07:00:00

UbuntuLinuxNetbeans

2015-01-27 09:16:46

DaaSDRaaS災(zāi)難恢復(fù)

2011-08-10 09:31:41

Hibernateunion

2021-03-09 07:27:40

Kafka開源分布式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號