Mac OS X 下非官方软件自启动处理
Posted 工科狗和生物喵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac OS X 下非官方软件自启动处理相关的知识,希望对你有一定的参考价值。
正文之前
说是处理,想必也没几个人喜欢自启动的软件,我是一个控制欲比较强的人,开机自启搜狗输入法这个我能接受,但是像印象笔记啊,向日葵圆孔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
#!/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路径下
<?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
<?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》以及我的王道单科数据结构咯~~~
以上是关于Mac OS X 下非官方软件自启动处理的主要内容,如果未能解决你的问题,请参考以下文章