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

2024-09-13 12:16:27 +08:00
 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 还在不断增量变化,

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

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