使用 -SIGINT 关闭在破折号脚本中启动的 dd 进程
Close a dd process, that was started in a dash script, with -SIGINT
当我使用
直接从终端启动 dd 进程时
dd if=/dev/zero of=/dev/null &
命令并向它发送一个 -SIGINT
kill -SIGINT <pid>
命令它成功关闭。但是当我从脚本开始这个过程时
#!/bin/sh
dd if=/dev/zero of=/dev/null &
kill -SIGINT <pid>
不影响进程。我想知道为什么会这样。我在网上没有找到相关资料。
If job control is disabled (see the description of set -m) when the shell executes an asynchronous list, the commands in the list shall inherit from the shell a signal action of ignored (SIG_IGN) for the SIGINT and SIGQUIT signals.
这可能是因为 Ctrl+C 向组中的每个进程发送了一个信号,所以如果没有这种行为,当您尝试中断主脚本时,任何后台进程都会意外终止。
当我使用
直接从终端启动 dd 进程时dd if=/dev/zero of=/dev/null &
命令并向它发送一个 -SIGINT
kill -SIGINT <pid>
命令它成功关闭。但是当我从脚本开始这个过程时
#!/bin/sh
dd if=/dev/zero of=/dev/null &
kill -SIGINT <pid>
不影响进程。我想知道为什么会这样。我在网上没有找到相关资料。
If job control is disabled (see the description of set -m) when the shell executes an asynchronous list, the commands in the list shall inherit from the shell a signal action of ignored (SIG_IGN) for the SIGINT and SIGQUIT signals.
这可能是因为 Ctrl+C 向组中的每个进程发送了一个信号,所以如果没有这种行为,当您尝试中断主脚本时,任何后台进程都会意外终止。