前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mac OS X 下非官方软件自启动处理

Mac OS X 下非官方软件自启动处理

作者头像
用户1687088
发布2018-05-07 17:07:49
2.6K0
发布2018-05-07 17:07:49
举报
文章被收录于专栏:工科狗和生物喵

正文之前

说是处理,想必也没几个人喜欢自启动的软件,我是一个控制欲比较强的人,开机自启搜狗输入法这个我能接受,但是像印象笔记啊,向日葵圆孔Client客户端这些,我就真的是烦不胜烦了!所以,今天,还是直接干死他们算了吧!不然老是这么烦我,每次都是直接去活动监视器直接删到一点进程都没了也不是办法啊。还是一劳永逸吧!

正文

1、网络上的常规办法:

苹果电脑开机启动项怎么设置 MacBook开机启动项_百度经验

先在 Mac 电脑中打开“偏好设置”应用

在设置列表中点击打开“用户与群组”选项,如图所示

接着左侧选择自己当前的登录用户名,在右边即可看到随系统启动的应用软件列表

如果你要添加开机启动的,那么会自动锁定到Application文件夹下,你自己慢慢添加

在右侧选择不想让随系统启动的应用程序,再点击“减号”按钮即可

2、 在网上扒拉大神博客的时候发现的办法

你会发现,握草?为毛我的开机自启明明没有这个软件,但是每次开机的时候都会自己给我跳出来?逗我呢???大概是因为你不是在AppStore下载的吧,互联网程序么,总归有那么些后门的,理解就好!嗯,理解归理解,我该怎么艹翻它呢??嗯。没错,接下来进入正题!

StartupItems,顾名思义,就是在系统启动过程中运行的程序,它们可以是运行完就立即终止的程序(比如,开机清空废纸篓),也可以是一直持续在系统运行周期的后台进程。 StartupItems一般存放在以下两个路径下:

1)/System/Library/StartupItems
2)/Library/StartupItems

大部分与系统相关的StartupItems都放在/System/Library/StartupItems这个路径下,它们会先于/Library/StartupItems路径下的执行,因为前者路径下的StartupItems提供了系统级的基础服务,比如crash reporting,core graphics services,system accounting等,而后者路径在默认情况下是不存在的,需要自己手动创建。

那么我们该怎么办呢?当然是直接杀上老家开肝了!!

首先,打开一个finder:

然后快捷键 command + shift + G

根据把这个地址复制到地址,其实这个就是windows下的那个地址栏啦,只不过windows固化了,Mac OS X比较坑爹而已!然后就到了这儿

代码语言:javascript
复制
#!/bin/sh

##
# load the tun kext
##

 . /etc/rc.common

 StartService ()
 {
     ConsoleMessage "Initializing tun devices"

     if [ -d /Library/Extensions/tun.kext ]; then
         kextload /Library/Extensions/tun.kext
     fi
 }

 StopService ()
 {
     if [ -d /Library/Extensions/tun.kext ]; then
         kextunload /Library/Extensions/tun.kext
     fi
 }

 RestartService ()
 {
     if [ -d /Library/Extensions/tun.kext ]; then
         kextunload /Library/Extensions/tun.kext
         kextload /Library/Extensions/tun.kext
     fi
 }

 RunService "$1"

一般的可执行文件包含这样几个方面的内容: 1)./etc/rc.common Apple提供的一个脚本库,该脚本库里包含了为可执行文件引进参数的接口。在这里load这个库主要是调用RunService。 2)StartService(), StopService(), RestartService() 当可执行文件接收到的参数为start,stop或者restart时,执行相对应的函数。 参数含义: start:开机过程中开启服务; stop:关机过程中停止服务; restart:在特定条件下重启服务。 3)RunService “$1” 执行传递给该脚本的第一个参数指定的服务。 “$1” 表示传给该脚本的第一个参数。例如,传入的参数为start,则执行StartService()。 我的办法很简单粗暴啊

既然你不听话,我也懒得一个个改了。直接全灭了。然后我按照第一种方法再去选乖乖听我话得吧!

3、 类似的方法,好像是设置自启动名单的

launchd是Mac OS下用于初始化系统环境的关键进程,它是内核装载成功之后在OS环境下启动的第一个进程。采用这种方式来配置自启动项很简单,只需要一个plist文件,通常(同时也是系统推荐)是将plist放在~/Library/LaunchAgents路径下

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.google.keystone.user.agent</string>
    <key>LimitLoadToSessionType</key>
    <string>Aqua</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/zhangzhaobo/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent</string>
      <string>-runMode</string>
      <string>ifneeded</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StartInterval</key>
    <integer>3623</integer>
    <key>StandardErrorPath</key>
    <string>/dev/null</string>
    <key>StandardOutPath</key>
    <string>/dev/null</string>
</dict>
</plist>

1)Label【required必须要有】 该项服务的名称。

2)OnDemand【optional可选,我貌似就没有?被一个LimitedeLoadToSessionType取代了】 10.4提供的一个key值,功能与KeepAlive的基本功能相似,在10.5及之后的系统中被KeepAlive替代。KeepAlive扩展了更多的功能,除了使用单一的boolean作为key值之外,还能使用字典结合多个key值。

3)Program【ProgramArgument是必须的,在没有ProgramArgument的情况下,必须要包含Program这个key】 指定可执行文件的路径。

4)RunAtLoad【optional】 标识launchd在加载完该项服务之后立即启动路径指定的可执行文件。默认值为false。

5)WorkingDirectory【optional】 该key在开启可执行文件之前,指定当前工作目录的路径。

6)KeepAlive【optional】 这个key值是用来控制可执行文件是持续运行呢,还是满足具体条件之后再启动。默认值为false,也就是说满足具体条件之后才启动。当设置值为ture时,表明无条件的开启可执行文件,并使之保持在整个系统运行周期内。

原作者写出来的一个plist

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"   
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
    <key>Label</key>  
    <string>com.yourcompany.HSPA_USB_MODEM</string>  
    <key>OnDemand</key>  
    <false/>  
    <key>Program</key>  
    <string>/Application/HSPA USB MODEM.app/Running</string>  
    <key>RunAtLoad</key>  
    <true/>  
    <key>WorkingDirectory</key>  
    <string>/Application/HSPA USB MODEM.app</string>  
</dict>  
</plist>

原作见:三种方式配置Mac OS X的启动项

正文之后

溜了溜了,看《C++ Primer》以及我的王道单科数据结构咯~~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 工科狗和生物喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文之前
  • 正文
    • 1、网络上的常规办法:
      • 2、 在网上扒拉大神博客的时候发现的办法
        • 3、 类似的方法,好像是设置自启动名单的
        • 正文之后
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档