#!/usr/bin/env bash
for i in $(seq 1 $1);
do
./extended&
done
wait
这是我的bash脚本,我执行扩展二进制文件的次数与命令行参数中指定的次数相同。当我使用SIGINT杀死bash脚本时,子进程也被杀死。我在bash脚本中调用了wait,但无法弄清楚子进程是如何被杀死的。我知道,等待会让父母等到孩子终止。
答案 0 :(得分:0)
bash
默认在退出时向所有子级发送SIGHUP
(挂断信号)。如果您不希望出现这种情况,请使用disown -h
来自man bash
:
为防止外壳程序将信号发送到特定作业,应使用内置的disown将其从作业表中删除或标记为不接收SIGHUP 使用disown -h。