mac怎么设置开机自启动项,mac选择开机启动项
Login Items
Mac OSX的当前用户成功登录后启动的程序,该类别的启动项配置文件存放在~/Library/Preferences/com.apple.loginitems.plist,所以只针当前用户,你可以通过以下方式进行设置:
1.在系统偏好设置的“用户与群组”下面进行设置,可以删除、添加、开启和关闭;
2.你可以直接修改~/Library/Preferences/com.apple.loginitems.plist配置文件,其中每一个启动项对应一个字典,有Alias、Icon、Name三个值,其中Name是NSString类型,其它是Data类型,尚不知如此序列化生成,所以目前可以删除;
3.通过LSSharedFileListInsertItemURL和LSSharedFileListItemRemove方法进行添加删除,相关的介绍(注册程序开机启动).
Launchd Daemon
此类型的启动项都由launchd来负责启动,launchd是Mac OS下用于初始化系统环境的关键进程,它是内核装载成功之后在OS环境下启动的第一个进程。采用这种方式来配置自启动项很简单,只需要一个plist文件,该plist文件存在的目录有
~/Library/LaunchAgents
/Library/LaunchAgents
/System/Library/LaunchAgents
以上三个目录为系统推荐放置的路径,是当登录之后启动的进程
~/Library/LaunchDaemons
/Library/LaunchDaemons
/System/Library/LaunchDaemons
放置在以上三个目录,则启动为守护进程,为系统启动后立即启动的进程
不同的目录进程启动的权限和优先级是不一样的,你可以通过以下的方式进行设置:
1.通过launchctl load xxx.plist或launchctl unload xxx.plist命令添加和删除指定启动项;
2.直接创建、修改、删除相关目录下面的plist文件。
plist中主要的字段和它的含义
Label 用来在launchd中的一个唯一标识,类似于每一个程序都有一个identifies一样。
UserName 指定运行启动项的用户,只有当Launchd 作为 root 用户运行时,此项才适用。
GroupName 指定运行启动项的组,只有当Launchd 作为 root 用户运行时,此项才适用。
KeepAlive 这个key值是用来控制可执行文件是持续运行呢,还是满足具体条件之后再启动。默认值为false,也就是说满足具体条件之后才启动。当设置值为ture时,表明无条件的开启可执行文件,并使之保持在整个系统运行周期内。
RunAtLoad 标识launchd在加载完该项服务之后立即启动路径指定的可执行文件。默认值为false。
Program 这个值用来指定进程的可执行文件的路径。
ProgramArguments 如果未指定Program时就必须指定该项,包括可执行文件文件和运行的参数。
3.StartupItems
StartupItems,顾名思义,就是在系统启动过程中运行的程序,它们可以是运行完就立即终止的程序(比如,开机清空废纸篓),也可以是一直持续在系统运行周期的后台进程。
StartupItems一般存放在以下两个路径下:
1)/System/Library/StartupItems
2)/Library/StartupItems
大部分与系统相关的StartupItems都放在/System/Library/StartupItems这个路径下,它们会先于/Library/StartupItems路径下的执行,因为前者路径下的StartupItems提供了系统级的基础服务,比如crash reporting,core graphics services,system accounting等,而后者路径在默认情况下是不存在的,需要自己手动创建。
这里我们以/Library/StartupItems目录下的IcebergControlTower为例。
简单来说,在Mac OS X上,一个StartupItems包含以下两个方面的内容:
1)可执行程序;
2)包含依赖进程关系的plist文件(StartupParameters.plist)。
StartupParameters.plist 是一个属性列表,包含了运行可执行程序的必要条件,plist中主要的字段和它的含义
该plist需要获得root权限,包含了几个方面的内容:
1)Description;
对该服务的一个简单的描述,仅仅是描述,并不是说明实际的进程名称。
2)Provides;
指定StartupItems提供的服务。如图plist文件Provides中说明,StartupItems开启的后台进程名为:Iceberg Control Tower。
Provides可以指定多个服务,反映在图中就是Item0,Item1…等。这里只有Item0。
3)Uses;
指定了在StartupItems加载之前需要开启的服务。Mac OS X系统先尝试着加载Uses中指定的服务,然后再加载StartupItems。也就是说,即使Uses中指定的服务没有加载成功,系统仍然会加载StartupItems。
4)OrderPreference;
指定执行StartupItems的时间顺序。这个顺序的重要程度排在Uses之后,是指定执行完Uses之后的顺序。可能的取值包括:First, Early, None(default), Late, Last。
5)Messages。
The Executable File
注意:1)可执行文件的名称和它所在的文件夹的文件名是一样的,这是系统默认的规则。
2)操作可执行文件需要获得root权限。
3)可执行文件是一个shell脚本。
打开IcebergControlTower文件目录下同名的可执行文件,可以看到脚本的具体内容:
一般的可执行文件包含这样几个方面的内容:
1)./etc/rc.common
Apple提供的一个脚本库,该脚本库里包含了为可执行文件引进参数的接口。在这里load这个库主要是调用RunService。
2)StartService(), StopService(), RestartService()
当可执行文件接收到的参数为start,stop或者restart时,执行相对应的函数。
参数含义:
start:开机过程中开启服务;
stop:关机过程中停止服务;
restart:在特定条件下重启服务。
3)RunService “$1”
执行传递给该脚本的第一个参数指定的服务。
“$1” 表示传给该脚本的第一个参数。例如,传入的参数为start,则执行StartService()。
(部分内容引用于http://blog.csdn.net/糊涂的香水_sheen/article/details/7817198
mac怎么设置开机自启动项,mac选择开机启动项的更多相关文章
- Mac OS X中,有三种方式来实现启动项的配置
Mac OS x 启动项设置 Mac OS X的启动原理: 1,mac固件激活,初始化硬件,加载BootX引导器. 2,BootX加载内核与内核扩展(kext). 3,内核启动launchd进程. 4 ...
- 台式电脑、笔记本快捷选择Boot(启动项快捷键)大全
我们在安装系统时,会去设置电脑是从硬盘启动.U盘启动.光驱启动.网卡启动. 一般设置的方法有两种:一种是进BIOS主板菜单设置启动项顺序:另一种就是我在这里要介绍的快捷选择启动项. 以下是网友整理的各 ...
- 【Linux-CentOS】CentOS安装Win双系统后Win启动项丢失及默认启动项修改
转载自:搁浅bky,有部分更正,建议看此文. 1.Windows启动项消失的原因: 在安装Win7.8/10系统+CentOS7双系统后,默认会将mbr(Main Boot Record)改写为g ...
- Mac OS X磁盘重新分区后 BootCamp Windows启动项丢失
前言 我有一台Mac,装有OS X和Windows两系统,因Windows和OS X都能读写exFAT分区, 故若在Machintosh HD和Windows HD之间开辟一个exFAT分区,可以作为 ...
- imx6q Xorg下Qt应用开机自启动及添加桌面快捷启动图标的方法
启动scene3d例子: root@imx6qsabresd:/etc/X11/Xsession.d# ls -altotal 36drwxr-xr-x 2 root root 4096 Mar 12 ...
- 三种方式配置Mac OS X的启动项
在Mac OS X中,有三种方式来实现启动项的配置:1)Login Items:2)StartupItems:3)launchd daemon. 1.Login Items 打开System Pref ...
- 【Redis】redis开机自启动、设置守护进程、密码设置、访问权限控制等安全设置(redis默认端口6379)
一.redis设置开机自启动:centOS: 1.修改redis.conf中daemonize为yes,确保守护进程开启,也就是在后台可以运行. (守护进程:孤儿进程:独立于终端而存在的进程,不会因为 ...
- win7下redis开机自启动设置
win7下安装完redis之后,每次开机都得用cmd命令行启动redis,所以就想办法实现开机自启动redis. 一.把启动命令写入bat: E:\redis\redis-server.exe E:\ ...
- centos 8 sonarqube 设置开机自启动解决方案
编写开机自启动脚本 进入到开机自启动调用文件目录 vim /etc/systemd/system/sonarqube.service [Unit] Description=SonarQube serv ...
- Linux下Tomcat的搭建以及开机自启动设置
首先进行下JDK的配置: 1.查看下系统信息,确认是32位还是64位:uname -a 2.下载相应位数的jdk压缩包,传到Linux系统,这里提供一个32位和64位的下载链接:https://pan ...
随机推荐
- 2022-05-20内部群每日三题-清辉PMP
1.一位团队成员通知项目经理有一个问题可能会破坏项目.项目经理将该问题添加到问题日志中,并要求团队找到解决方案. 项目经理下一步应该怎么做? A.更新风险登记册 B.修订项目管理计划 C.确定适当的风 ...
- vue父子组件传值的方式
给子组件传值: this.$refs.child.xx(query); 调用父组件的方法:this.$parent.xx();
- 微服务笔记之Eureka03(服务续约分析)
服务续约接口分析 com.netflix.eureka.resources.InstanceResource#renewLease public Response renewLease( @Heade ...
- Jemeter 压测 Elasticsearch
Jemeter 版本 apache-jmeter-5.5 Elasticsearch 版本 7.17.6 自行官网下载 Elasticsearch压测报告 Elasticsearch 服务器当前情况: ...
- Fuxploider-20210104
Usage: fuxploider.py [-h] [-d postData] [--proxy proxyUrl] [--proxy-creds [credentials]] [-f integer ...
- 【运行报错】Openstack 在部署 Keystone 时出现依赖包报错 (解决安装时依赖包报错问题)
报错信息 在 安装openstack T版本的时候 keystone时出错: Error: Package: python2-qpid-proton-0.26.0-2.el7.x86_64 (cent ...
- Pytorch加载txt格式的数据集文件(以PTB数据集为例)
前言 这篇博客以PTB数据集为例,详细讲解了如何将txt格式的数据集文件,转换为pytorch框架可以直接处理的tensor变量,并附上相应代码 @ 目录 前言 1. PTB 数据集 2. 构建词汇表 ...
- 星链技术设计(starlink techriage design)
1.星链 定义: 星链,是美国太空探索技术公司的一个项目,太空探索技术公司计划在2019年至2024年间在太空搭建由约1.2万颗卫星组成的"星链"网络提供互联网服务,其中158 ...
- Quartz 2D实现文字镂空效果
什么是镂空效果,下图就是一个镂空效果的文字: 从图可知,文字是透明的,可以看到下面的图片内容,而UILabel其它部分是白色背景. 使用Quartz 2D绘制镂空效果,大体思路如下: 实现一个UILa ...
- Android Studio Gradle 输出信息乱码
Android Studio Gradle 输出信息出现乱码 如下: > Task :app:compileDebugJavaWithJavacע: ijЩ�����ļ�ʹ�û����ѹ�ʱ�� ...