关于在代码中关闭 Mac 平台共享的实现方法

2018-10-08  本文已影响11人  l蓝色梦幻

因为没有找到对应的开源代码与相关资料,所以在进行该功能实现的时候我们取了巧。在 mac 平台上功能设置依赖于 plist 文件。因此,我们通过 c 代码调用命令行来实现该功能:

// 判断是否加载了 sshd,如果有提示 com.openssh.sshd 证明加载了
sudo launchctl list | grep sshd

// 判断是否加载了 smbd,如果有提示 com.apple.smbd 证明加载了
sudo launchctl list | grep smbd

// 判断是否加载了 screensharing,如果有提示 com.apple.screensharing 证明加载了
sudo launchctl list | grep screensharing

// 卸载
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.smbd.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist

// 加载
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

但是这么实现了还是不保准是否用户自己手动加载,因此我们又添加了进程判断。

上一篇 下一篇

猜你喜欢

热点阅读