相关疑难解决方法(0)

如何从bash脚本发送control + c?

我在bash脚本中启动了一些屏幕,然后runserver在每个屏幕中运行django的命令.我希望能够以编程方式阻止它们,这需要我发送Control+crunserver.

如何从我的bash脚本发送这些击键?

bash gnu-screen

57
推荐指数
3
解决办法
10万
查看次数

bash脚本如何将Ctrl-C等效于后台任务?

有没有办法调用子进程,以便它及其所有后代发送一个中断,就像你Ctrl-C前台任务一样?我正在尝试杀死一个调用一个长期运行的孩子的启动器脚本.我已经尝试过kill -SIGINT $child(它不会向其后代发送中断,因此是无操作)和kill -SIGINT -$child(在交互式调用时有效但在脚本中运行时无效).

这是一个测试脚本.长期运行的脚本是test.sh --child.当你打电话时test.sh --parent,它会调用test.sh --child &然后尝试杀死它.如何让父母成功杀死孩子?

#!/bin/bash

if [ "$1" = "--child" ]; then
sleep 1000

elif [ "$1" = "--parent" ]; then
"$0" --child &
for child in $(jobs -p); do
  echo kill -SIGINT "-$child" && kill -SIGINT "-$child"
done
wait $(jobs -p)

else
echo "Must be invoked with --child or --parent."
fi
Run Code Online (Sandbox Code Playgroud)

我知道你可以修改长时间运行的子trap信号,将它们发送到它的子进程,然后等待(从 Bash脚本杀死Ctrl + C上的背景(大)子),但有没有办法不修改子脚本?

bash

9
推荐指数
3
解决办法
2万
查看次数

标签 统计

bash ×2

gnu-screen ×1