打开新的shell会话时,我的Bash脚本不响应SIGNALS

时间:2017-01-18 01:30:08

标签: 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会话中,同样的情况我使用其他类似sleep infinity的东西而不是打开新的bash会话(那只是为了测试,因为我需要那个bash会话)。

如何对该SIGTERM进行此脚本响应?新bash会话终止的方式并不重要,我只想确保我在{{{ 1}}将被执行。

1 个答案:

答案 0 :(得分:1)

在定义陷阱的shell获得控制权之前,不会调用该陷阱。由于你启动了bash并且这个新进程获得了控制权,所以陷阱永远不会被调用。