美文网首页
关于在代码中关闭 Mac 平台共享的实现方法

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

作者: l蓝色梦幻 | 来源:发表于2018-10-08 15:09 被阅读11次

因为没有找到对应的开源代码与相关资料,所以在进行该功能实现的时候我们取了巧。在 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

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

  • /usr/sbin/sshd 运行的时候,ssh 开启了
  • /System/Library/CoreServices/RemoteManagement/screensharingd.bundle/Contents/MacOS/screensharingd 运行的时候,屏幕共享开启了
  • /usr/sbin/smbd 运行的时候,文件共享开启了

相关文章

网友评论

      本文标题:关于在代码中关闭 Mac 平台共享的实现方法

      本文链接:https://www.haomeiwen.com/subject/oacjaftx.html