请教杀死 Mac 进程的正确姿势

2016-01-12 10:04:21 +08:00
 anguslg

是这样的,从 Github 上安装的一个应用,只有后台进程。平时一直开机自启动,所以从来没管理他。

今天想中止后台,前台调试一下
一开始在 Activity Monitor 里搜索到进程,点击 quit ,没反应
再试试 Force quit ,还是没反应
在终端里用 kill pid 的方法,无效
用 sudo kill -9 pid 的方法,怪事出现了:他换了一个 pid 又运行了!🙈

7423 次点击
所在节点    macOS
16 条回复
qqzj
2016-01-12 10:12:35 +08:00
看下它的父进程 pid ,也一起结束了

Github 上安装的应用,是 Github 自己出的应用,还是上面开源的应用?
mkeith
2016-01-12 10:17:10 +08:00
是不是以服务程序运行的啊
dotpig
2016-01-12 10:21:21 +08:00
看看 LaunchDaemon 以及 LaunchAgent 有没有它的启动项。
anguslg
2016-01-12 10:21:53 +08:00
@qqzj 他并没有父进程。以前从来没出现过这个问题,直接在 activity monitor 就可以退出。
是 github 上开源应用, cow 。用了很久了,所以也很信任
anguslg
2016-01-12 10:23:06 +08:00
@dotpig 是我手动添加到 LaunchAgent 目录的,但是之前一直可以手动关闭进程,唯独这次
anguslg
2016-01-12 10:27:08 +08:00
@mkeith 是的,因为用了很久,之前都是随时关闭随时开启。今天不知何故
ETiV
2016-01-12 10:28:06 +08:00
应该是 launchd 守护着

launchctl stop unload 啥的试一试
anguslg
2016-01-12 10:36:18 +08:00
@ETiV 用 launchctl unload 搞定了!
mkeith
2016-01-12 10:36:30 +08:00
你以前关掉了没看到被再次启动,所以你以为就关掉了
dotpig
2016-01-12 10:38:27 +08:00
看了一下 cow 的 LaunchAgent plist ,有下面的 key :
<key>KeepAlive</key>
<true/>
这个是很强大的,理论上你杀死它的进程它就重开。
anguslg
2016-01-12 10:41:39 +08:00
@mkeith 一般关后台是为了开启前台,如果后台开启,前台是不可能再开启一次的,端口冲突。以前确实是关掉了的。不过你提到服务的时候,我想到了 launchctl ,因为之前手动开后台就是这么开的
mkeith
2016-01-12 11:19:02 +08:00
那也可能你开了前台后台无法启动了吧,mac 上的守护好像是有时间间隔的
Havee
2016-01-12 11:24:11 +08:00
launchctl list

找找是否在里面

具体用法, launchctl help
ferock
2016-01-12 11:45:15 +08:00
不用 cow ,效率问题,每次还需要检测网站是否可以连接
liuzuo
2016-01-12 15:16:19 +08:00
killall ss-local
woai110120130
2016-01-12 19:05:09 +08:00
kill -s 9

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

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

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

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

© 2021 V2EX