相关疑难解决方法(0)

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

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

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

bash gnu-screen

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

如何从脚本向脚本发送信号SIGINT?BASH

我想捕获从Script-A.sh发送到Script-B.sh的信号,所以在Script-A.sh中我使用命令

(将SIGINT发送到Script-B.sh)
kill -2 $ PID_Script-B.sh

在Script-B.sh中,我捕获信号并调用函数Clean

陷阱'清洁'2

它不起作用,而是立即杀死Script-B.sh而不执行Clean !!

我还注意到,如果我想将SIGINT从终端发送到任何捕获它的脚本,ctrl-c将会正确捕获,但如果我通过命令指定信号则不会kill -2 $pid_of_script

有没有想过发送SIGINT(ctrl-cVS kill -2 $pid_of_script)的两种方法之间的区别,以及如何将SIGINT从脚本发送到另一个?

问候,

调试器

bash signals kill bash-trap

13
推荐指数
1
解决办法
2万
查看次数

Bash脚本在Ctrl + C上杀死背景(大)孩子

我有一个Bash脚本(Bash 3.2,Mac OS X 10.8),它可以并行调用多个Python脚本,以便更好地利用多个内核.每个Python脚本都需要很长时间才能完成.

问题是,如果我在Bash脚本中间按Ctrl + C,Python脚本实际上不会被杀死.如何编写Bash脚本以便杀死它也会杀死所有后台子节点?

这是我原来的"简化测试案例".不幸的是,我似乎已经减少了太多,以至于它不再表现出问题; 我的错.

set -e

cat >work.py <<EOF
import sys, time
for i in range(10):
    time.sleep(1)
    print "Tick from", sys.argv[1]
EOF

function process {
    python ./work.py $1 &
}

process one
process two
wait
Run Code Online (Sandbox Code Playgroud)

这是一个完整的测试用例,仍然大大减少,但希望这个将证明问题.它在我的机器上再现......但是,两天前,我认为我的机器上再现了旧的测试用例,今天它肯定没有.

#!/bin/bash -e
set -x

cat >work.sh <<EOF
for i in 0 1 2 3 4 5 6 7 8 9; do
    sleep 1; echo "still going"
done
EOF
chmod +x work.sh

function kill_all_jobs { jobs -p …
Run Code Online (Sandbox Code Playgroud)

bash shell kill process wait

5
推荐指数
1
解决办法
4455
查看次数

如何将 SIGINT 发送到 shell 脚本?

我正在编写一个包含多个进程的守护进程。一旦第一个进程完成,它就会停止并需要手动中断 SIGINT(CTRL + C)。在此之后运行下一个脚本。

过程 1 成功结束。

如何添加 SIGINT 以自动进一步处理?

这个问题可能是微不足道的,但只能找到我们如何在脚本中捕获给定的信号,但是我们如何在完成任务后添加一个?

unix bash shell

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×4

kill ×2

shell ×2

bash-trap ×1

gnu-screen ×1

process ×1

signals ×1

unix ×1

wait ×1