代码之家  ›  专栏  ›  技术社区  ›  Marcel

家长的PID在循环中不起作用,导致Bash停止睡眠

  •  0
  • Marcel  · 技术社区  · 10 年前

    我有一个文件如下:

    #!/bin/bash
    
    echo $$ > pid
    
    while true; do
        echo "something"
        sleep 10s
    done | lemonbar
    

    我想用这样的功能来终止睡眠:

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

    如果我将sleep移出循环,上面的命令会起作用,但如果它在循环中,它什么也不做。我错过了什么?

    1 回复  |  直到 10 年前
        1
  •  0
  •   Nick Burns    10 年前

    Bash循环将新进程id作为子进程启动。外壳变量$PPID应该表示父PID。然而,我也阅读了你之前的问题,我认为更好的问题是你真正想要完成什么?所有这些闻起来都很臭。。。