我有这个简单的 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/