我想在 bash 脚本中同时运行两个命令(其中一个是另一个 bash 脚本),并且我需要在按 Ctrl+C 时停止这两个命令。我的 bash 脚本现在是:
#!/bin/bash
./command1 &
exec "/path/to/bash2"
在 bash2 中:
#!/bin/bash
[..]
python run.py
我应该添加一个陷阱来杀死这两个命令吗?如果是这样,在 bash 中添加以下内容没有帮助
trap killgroup SIGINT
killgroup(){
echo killing...
kill 0
}
答案1
尝试执行此操作以确保您kill
使用的是正确的 PID:
./command1 &
childpid=$!
trap "kill -TERM ${childpid}" EXIT
答案2
GNU Parallel 尊重 ctrl-c。所以你可以运行:
parallel ::: ./command1 /path/to/bash2