linux - 打开新的 shell session 时,我的 Bash 脚本不响应 SIGNALS

标签 linux bash shell command-line sh

我有这个简单的 bash 脚本:

#!/bin/bash
trap "rm /testfile; service apache2 stop;" SIGTERM
service apache2 start
# Here I want to create new bash session for some reasons.
/bin/bash

现在一些其他程序可以发送 SIGTERM 给这个脚本,但是实际上脚本没有响应那个信号,它一直卡在新的 bash session 中,同样的情况,当我使用 sleep infinity 之类的东西而不是打开新的 bash session 时(这只是为了测试,因为我需要那个 bash session )。

我怎样才能让这个脚本响应那个 SIGTERM?新的 bash session 如何终止并不重要,我只是想确保我在 trap 中写的东西 将被执行。

最佳答案

在定义它的 shell 重新获得控制权之前,不会调用该陷阱。由于您启动 bash 并且这个新进程接管了控制权,因此陷阱永远不会被调用。

关于linux - 打开新的 shell session 时,我的 Bash 脚本不响应 SIGNALS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41709975/

相关文章:

bash - 通过 bash 删除冗余

linux - 显示两个目录之间的变化

linux - Shell脚本查找从今天起12个工作日(忽略节假日)的日期

java 文件是从命令行执行的,而不是从浏览器(apache)执行的?

linux - 将连续流通过管道传输到多个文件

linux - 在 ubuntu 上构建 ndk (ndk-r10b) 示例

linux - NASM x86_64 在编写命令行参数时遇到问题,在 rax 中返回 -14

python - 调用包含 "echo"和 "|"的命令行

linux - 杀死一个java僵尸进程

c++ - 在 netfilter 模块中重新注入(inject)修改后的数据包