Bash 父进程的 PID 在循环中不工作时终止睡眠
Bash kill sleep by parent's PID not working in loop
我有一个如下所示的文件:
#!/bin/bash
echo $$ > pid
while true; do
echo "something"
sleep 10s
done | lemonbar
我希望能够用这样的函数来结束睡眠:
pkill -P $(cat pid) -f "sleep 10s"
如果我将 sleep 移出循环,上面的命令会起作用,但在循环中它什么也不做。我错过了什么?
Bash 循环将新进程 ID 作为子进程启动。 shell 变量 $PPID 应该表示父 PID。但是,我也阅读了您之前的问题,我认为更好的问题是您真正想要完成什么?所有这些闻起来都很怪...
我有一个如下所示的文件:
#!/bin/bash
echo $$ > pid
while true; do
echo "something"
sleep 10s
done | lemonbar
我希望能够用这样的函数来结束睡眠:
pkill -P $(cat pid) -f "sleep 10s"
如果我将 sleep 移出循环,上面的命令会起作用,但在循环中它什么也不做。我错过了什么?
Bash 循环将新进程 ID 作为子进程启动。 shell 变量 $PPID 应该表示父 PID。但是,我也阅读了您之前的问题,我认为更好的问题是您真正想要完成什么?所有这些闻起来都很怪...