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

Posted 工科狗和生物喵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac OS X 下非官方软件自启动处理相关的知识,希望对你有一定的参考价值。

正文之前

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

正文

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

1、网络上的常规办法:

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

先在 Mac 电脑中打开“偏好设置”应用Mac OS X 下非官方软件自启动处理

在设置列表中点击打开“用户与群组”选项,如图所示Mac OS X 下非官方软件自启动处理

接着左侧选择自己当前的登录用户名,在右边即可看到随系统启动的应用软件列表Mac OS X 下非官方软件自启动处理

如果你要添加开机启动的,那么会自动锁定到Application文件夹下,你自己慢慢添加Mac OS X 下非官方软件自启动处理

在右侧选择不想让随系统启动的应用程序,再点击“减号”按钮即可Mac OS X 下非官方软件自启动处理

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

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

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

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

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

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

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

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

首先,打开一个finder:Mac OS X 下非官方软件自启动处理

然后快捷键 command + shift + G Mac OS X 下非官方软件自启动处理

 
   
   
 
  1. #!/bin/sh

  2. ##

  3. # load the tun kext

  4. ##

  5. . /etc/rc.common

  6. StartService ()

  7. {

  8.     ConsoleMessage "Initializing tun devices"

  9.     if [ -d /Library/Extensions/tun.kext ]; then

  10.         kextload /Library/Extensions/tun.kext

  11.     fi

  12. }

  13. StopService ()

  14. {

  15.     if [ -d /Library/Extensions/tun.kext ]; then

  16.         kextunload /Library/Extensions/tun.kext

  17.     fi

  18. }

  19. RestartService ()

  20. {

  21.     if [ -d /Library/Extensions/tun.kext ]; then

  22.         kextunload /Library/Extensions/tun.kext

  23.         kextload /Library/Extensions/tun.kext

  24.     fi

  25. }

  26. RunService "$1"

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

一般的可执行文件包含这样几个方面的内容: 1)./etc/rc.common Apple提供的一个脚本库,该脚本库里包含了为可执行文件引进参数的接口。在这里load这个库主要是调用RunService。 2)StartService(), StopService(), RestartService() 当可执行文件接收到的参数为start,stop或者restart时,执行相对应的函数。 参数含义: start:开机过程中开启服务; stop:关机过程中停止服务; restart:在特定条件下重启服务。 3)RunService “$1” 执行传递给该脚本的第一个参数指定的服务。 “$1” 表示传给该脚本的第一个参数。例如,传入的参数为start,则执行StartService()。 我的办法很简单粗暴啊Mac OS X 下非官方软件自启动处理既然你不听话,我也懒得一个个改了。直接全灭了。然后我按照第一种方法再去选乖乖听我话得吧!

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

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

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

 
   
   
 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

  3. <plist version="1.0">

  4. <dict>

  5.    <key>Label</key>

  6.    <string>com.google.keystone.user.agent</string>

  7.    <key>LimitLoadToSessionType</key>

  8.    <string>Aqua</string>

  9.    <key>ProgramArguments</key>

  10.    <array>

  11.      <string>/Users/zhangzhaobo/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent</string>

  12.      <string>-runMode</string>

  13.      <string>ifneeded</string>

  14.    </array>

  15.    <key>RunAtLoad</key>

  16.    <true/>

  17.    <key>StartInterval</key>

  18.    <integer>3623</integer>

  19.    <key>StandardErrorPath</key>

  20.    <string>/dev/null</string>

  21.    <key>StandardOutPath</key>

  22.    <string>/dev/null</string>

  23. </dict>

  24. </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

 
   
   
 
  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"  

  3.    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  

  4. <plist version="1.0">  

  5. <dict>  

  6.    <key>Label</key>  

  7.    <string>com.yourcompany.HSPA_USB_MODEM</string>  

  8.    <key>OnDemand</key>  

  9.    <false/>  

  10.    <key>Program</key>  

  11.    <string>/Application/HSPA USB MODEM.app/Running</string>  

  12.    <key>RunAtLoad</key>  

  13.    <true/>  

  14.    <key>WorkingDirectory</key>  

  15.    <string>/Application/HSPA USB MODEM.app</string>  

  16. </dict>  

  17. </plist>

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

正文之后

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


以上是关于Mac OS X 下非官方软件自启动处理的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X下怎样让MongoDB开机即启动?

如何在mac os x下启动mysql

Windows 8.1下安装Mac OS X 10.8虚拟机

在 Mac OS X 上使用现代 OpenGL [关闭]

Mac OS X下go的安装,使用

013_Mac OS X下应该如何卸载软件和安装应用软件