【发布时间】:2018-06-26 04:10:12
【问题描述】:
我正在尝试编写一个 Bash 脚本,当它接收到 SIGINT 信号时,会在退出之前创建自身的副本。因此,当用户尝试使用 SIGINT 信号终止此脚本时,会重新出现该进程的副本。
trap "echo Exiting...?; ./ghoul.sh; exit 1" SIGINT
while :
do
echo Process Number $$, with PPID $PPID!
sleep 1
done
但是,每当我暂停进程并检查ps -f 时,脚本都有多个进程(子进程和子进程的子进程)。 exit 命令似乎永远不会运行,因为它正在等待孩子退出。我想找到一种方法在trap 语句中运行脚本并在之后退出,同时保持生成的子进程。除了将孩子创建为后台进程之外,还有什么方法可以做到这一点?
【问题讨论】: