求助:如何 kill 掉循环运行的脚本

6 天前
 Nott

之前 Mac 连接蓝牙音响,几分钟不播放声音的话,音响就会关机,于是用这样一个脚本来循环发出一个没有声音的操作:

#!/bin/bash
while true; do
  afplay /System/Library/Sounds/Glass.aiff -v 0.01
  sleep 300
done

然后开机运行,

最近,换了插线的音响,就想把这个脚本删掉,开机启动项里也删掉了,crontab 里也没有,sh 文件也删掉了,可是他还在后台自动循环,烦人的是,每隔几分钟就弹出来 Music.app ,播放视频还一会儿一暂停。

ps aux | grep KeepSound.sh 查找出来 PID 还在不断增量变化,

特来求助,如何干掉这个脚本?

776 次点击
所在节点    问与答
13 条回复
ysc3839
6 天前
重启系统?
heijiahei
6 天前
试试循环 pkill ?
Nott
6 天前
@ysc3839 删掉脚本第一时间就试了,不行
moudy
6 天前
怎么感觉真正运行的脚本你没删掉呢?
sagaxu
6 天前
你要 kill 掉这个 bash 进程才能停止循环
aminobody
6 天前
alexsz
6 天前
@moudy #4 应该是,OP 杀的是 bash 进程 还是 KeepSound.sh 的进程,循环可能是在另一个子 shell 中运行
Maboroshii
6 天前
看脚本的 parent 进程是哪个? pwdx 看下真实路径在哪里, 应该是没被删掉
NevadaLi
6 天前
通过 pid 找到他的父进程,ppid ,看看是哪个父进程触发的。
kokutou
6 天前
你不想重启吗。。。
kenvix
6 天前
直接 systemctl kill 把整个 slice kill 掉
Tiande
6 天前
编写一个在 macOS 下循环 kill 所有包含“KeepSound.sh”的进程的脚本。以下是一个简单的 Bash 脚本示例:

```bash
#!/bin/bash

while true; do
# 查找包含“KeepSound.sh”的进程并逐个 kill
for pid in $(pgrep -f KeepSound.sh); do
kill $pid
echo "Killed process with PID $pid"
done

sleep 1 # 暂停 1 秒后继续下一轮循环
done
```

你可以将上述脚本保存为一个文件(比如 `kill_keep_sound_processes.sh`),然后在终端中运行该脚本。请确保在运行脚本时具有足够的权限以执行 kill 操作。

注意:请谨慎使用这个脚本,确保你真的想要终止所有包含“KeepSound.sh”的进程,以免造成意外损失。
Nott
6 天前
@heijiahei 感谢,pkill -9 KeepSound.sh 干掉了
也感谢楼上各位的指点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1072601

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX