我正在尝试从bash脚本中分离一个进程,以便在退出该脚本时SIGINT不会转发到该进程。
我disown
直接在终端中使用了该命令,但是在bash中,disown
并没有阻止SIGINT的转发。该脚本的目的是通过一次调用先启动openocd,然后启动gdb。由于脚本永不退出(正在运行gdb),因此SIGINT仍从gdb转发到openocd,这是一个问题,因为SIGINT用作gdb中的暂停命令。
在终端中,它看起来像这样:
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
当按此顺序在终端上调用时,SIGINT不会从gdb传递到openocd。但是,如果在bash脚本中进行了相同的调用,则会传递SIGINT。
任何帮助将不胜感激。
ps这个问题是在OS X中出现的,但是我正在尝试使用对所有Unix工具都可移植的工具。
screen
吗?
nohup
不是一个正确的答案。您应该添加一些伪代码或示例代码,以更精确地显示所需的内容。