Bash通过父级PID不循环工作来杀死睡眠

时间:2016-02-26 00:23:04

标签: bash loops sleep pid kill

我有一个看起来像这样的文件:

#!/bin/bash

echo $$ > pid

while true; do
    echo "something"
    sleep 10s
done | lemonbar

我希望能够通过以下功能杀死睡眠:

pkill -P $(cat pid) -f "sleep 10s"

如果我将睡眠移出循环,上面的命令有效,但是在循环中它没有做任何事情。我错过了什么?

1 个答案:

答案 0 :(得分:0)

Bash循环作为孩子启动新进程ID。 shell变量$ PPID应该代表父PID。但是,我也读过您之前的问题,我认为更好的问题是您真正想要实现的目标是什么?所有这些都闻起来很糟糕......