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

65 天前
 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 还在不断增量变化,

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

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