小编Ada*_*m M的帖子

如何让脚本在暂停时回显某些内容?

我正在使用 暂停终端脚本SIGSTOP,并且希望它打印一条消息,表明它正在暂停。

  • 由于我无法捕获SIGSTOP,我尝试SIGUSR1在 之前发送 aSIGSTOP并捕获它,但是我放入陷阱的命令最终在脚本恢复后被执行。
  • 如果我在和sleep之间放置a ,则会执行 trap 命令,但脚本会在收到 之前运行一段时间。SIGUSR1SIGSTOPSIGSTOP

有没有一种方法可以让我从外部告诉我的脚本回显“我正在暂停”,然后立即停止?

编辑:我正在使用 bash。我的测试脚本只是:

trap "echo Paused" SIGUSR1
trap "echo Restarted" SIGCONT

while : ; do
    echo `date`
    sleep 1
done
Run Code Online (Sandbox Code Playgroud)

我称之为“./blah.sh”。

我的控制脚本是:

script_id=`pidof -x blah.sh`
kill -SIGUSR1 $script_id
sleep 0.5
kill -SIGSTOP $script_id

sleep 2

script_id=`pidof -x blah.sh`
kill -SIGCONT $script_id
Run Code Online (Sandbox Code Playgroud)

bash signals trap

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

标签 统计

bash ×1

signals ×1

trap ×1