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

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

#!/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》以及我的王道单科数据结构咯~~~

原文发布于微信公众号 - 工科狗和生物喵(gh_3507b116a1f8)

原文发表时间:2017-11-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

软件分享 | 3DS MAX 2016安装教程

3D Studio Max,常简称为3d Max或3dsMAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件...

11320
来自专栏伪君子的梦呓

用 selenium 和 scrapy 模拟知乎登录

这个是看一个视频学来的,视频给出的教程部分失效,因为知乎的登录页面改了。我进行一点修改就可以登录了,本文主要是记录

18430
来自专栏美团技术团队

Redis高负载下的中断优化

Redis 服务端的总体请求量从年初最开始日访问量百亿次级别上涨到高峰时段的万亿次级别,给运维和架构团队都带来了极大的挑战。

1.3K110
来自专栏IT技术精选文摘

Presto内存调优及原理(基础篇)

Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。Presto支持在线数据查询,包括Hive, Cassandra,...

19450
来自专栏恰童鞋骚年

.NET Core微服务之基于Consul实现服务治理

  Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb的SmartSt...

1.2K40
来自专栏挖坑填坑

(翻译)开始使用ABP.CORE模板 (ASP.NET Core with Angular)

开始一个新使用Angular和 ASP.NET Core 的ABP项目最简单的方法就是通过官方的模板页面来生成模板。切记包含zero模块。在官网完成创建和下载你...

26320
来自专栏逸鹏说道

C#线程篇---Windows调度线程准则(3)

Windows本身就是一个抢占式操作系统,它的实现,必定有某种算法在里面,比如什么时候调度哪些线程,需要花费多长时间等问题。 我们时时在用Windows,作为程...

36140
来自专栏软件开发 -- 分享 互助 成长

CY7C68013A的一点总结

一、 值得参考的资料:FX2 TechRefManual、USB应用开发宝典、 LabVIEW-USB通信简单教程(用于参考生成labview驱动程序)、USB...

25180
来自专栏公有云大数据平台弹性 MapReduce

Presto内存调优及原理(基础篇)

Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。

2.1K100
来自专栏微信终端开发团队的专栏

WCDB 的 WAL 模式和异步 Checkpoint

通过 A/B Test,最终相比传统 Rollback 模式写耗时减少 70% 以上,还稍稍降低了 DB 损坏率。

1K60

扫码关注云+社区

领取腾讯云代金券