Mac系统中的启动项设置

Mac系统中有3种设置程序自启动的方法:Login Item,StartItems,Launchd Daemon

1. 打开System Preferences,选择System -> Accounts,选择Login Items选项卡,将/Applications目录下的.app直接拖进右边的列表中。重启电脑之后就会发现列表中的程序在开机之后就自动启动了。

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

/System/Library/StartupItems

/Library/StartupItems

大部分与系统相关的StartupItems都放在/System/Library/StartupItems这个路径下,它们会先于/Library/StartupItems路径下的执行,因为前者路径下的StartupItems提供了系统级的基础服务,比如crash reporting,core graphics services,system accounting等。简单来说,在Mac OS X上,一个StartupItems包含以下两个方面的内容:

  • 可执行程序
  • 包含依赖进程关系的plist文件(StartupParameters.plist)

对于用户的启动项可以在/Library/StartItems的某目录下包含上面两个文件。

(1) The Property List:属性文件

StartupParameters.plist 是一个属性列表,包含了运行可执行程序的必要条件,主要内容包括:

  • Description:对该服务的一个描述,不是实际进程名称
  • Provides:指定StartupItems提供的服务,即StartupItems开启的后台进程名
  • Uses:指定了在StartupItems加载之前需要开启的服务
  • OrderPreference:指定执行StartupItems的时间顺序。这个顺序的重要程度排在Uses之后,是指定执行完Uses之后的顺序。可能的取值包括:First, Early, None(default), Late, Last。

StartItems.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>Description</key>

<string>Apple Serial Terminal Support</string>

<key>OrderPreference</key>

<string>Late</string>

<key>Provides</key>

<array>

<string>Serial Terminal Support</string>

</array>

<key>Uses</key>

<array>

<string>SystemLog</string>

</array>

<key>OrderPreference</key>

<string>None</string>

</dict>

</plist>

(2) The Executable File:可执行的文件

可执行文件的名称和它所在的文件夹的文件名是一样的,这是系统默认的规则。可执行文件是一个shell脚本,需要获得root权限。示例:

#!/bin/sh

. /etc/rc.common

StartService()

{

/Library/StartItems/xxxx/yyyy &

}

StopService()

{

return 0

}

RestartService()

{

return 0

}

RunService “$1"

3. Launchd Daemon

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

plist文件格式及每个字段的含义:

  • Label【required】 该项服务的名称。
  • OnDemand【optional】10.4提供的一个key值,功能与KeepAlive的基本功能相似,在10.5及之后的系统中被KeepAlive替代。KeepAlive扩展了更多的功能,除了使用单一的boolean作为key值之外,还能使用字典结合多个key值。
  • Program【ProgramArgument是required的,在没有ProgramArgument的情况下,必须要包含Program这个key】指定可执行文件的路径。
  • RunAtLoad【optional】标识launchd在加载完该项服务之后立即启动路径指定的可执行文件。默认值为false。
  • WorkingDirectory【optional】该key在开启可执行文件之前,指定当前工作目录的路径。
  • KeepAlive【optional】这个key值是用来控制可执行文件是持续运行呢,还是满足具体条件之后再启动。默认值为false,也就是说满足具体条件之后才启动。当设置值为ture时,表明无条件的开启可执行文件,并使之保持在整个系统运行周期内。
时间: 2024-08-29 10:42:52

Mac系统中的启动项设置的相关文章

CentOS 7与 Windows双系统丢失Windows启动项及默认启动项修改

1.Windows启动项消失的原因:   在安装Win7.8/10系统+CentOS7双系统后,默认会将mbr(Main Boot Record)改写为grub2,默认的CentOS7无法识别Windows的 NTFS分区,所以启动项中没有Windows系统. 2.解决方案: (1)首先要保证Linux可以联网(判断方法可以ping一下外网,看是否联通)         如果没有ping通,解决方法如下: root权限进入一下目录:cd /etc/sysconfig/network-script

Linux系统中数据库启动和关闭&Basic SQL

第一步:使用oracle用户登录 第二步:在oracle用户下输入sqlplus /nolog 第三步:如需使用管理员权限,则输入connect /as sysdba 第四步:启动和关闭 startup startup nomount #只启动实例 startup mount   #打开控制文件 startup open    #打开数据文件和重做日志 shutdown shutdown normal        #不接受新的连接,需要等待所有的用户断开连接 shutdown immediat

mac系统中搭建apache+mysql+php的开发环境,安装mysql后,登录报错:mac ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)

php新手在mac系统中搭建apache+mysql+php的开发环境(按照这篇博客来操作的:http://my.oschina.net/joanfen/blog/171109?fromerr=xvCsafCe),在安装配置mysql完毕后,登录mysql,报错:mac ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),折腾很久,终于解决,随手记录下,备忘. 解决方法: 第一步:如

Debian、Ubuntu系统中开机启动设置

Unix系统使用比较广泛的便是Linux系统,而基于Linux内核下也有很多衍生的其他的系统,其中就有Debian.Ubuntu这类的系统,在Linux系统下平时使用习惯的开机启动/etc/rc.local或/etc/rc.d/rc.local就没有了,那在Debian.Ubuntu下需要开启启动时就需要使用update-rc.d用来定义开机启动的命令 ,举一个简单的例子在Debian.Ubuntu开机启动iptables: 在Debian.Ubuntu中iptables并没有被做成类似Linu

Mac系统中各个文件夹简单介绍(转)

一.说明: Mac OS X,这是一个基于UNIX核心的系统,增强了系统的稳定性.性能以及响应能力.它能通过对称多处理技术充分发挥双处理器的优势,提供无与伦比的2D.3D和多媒体图形性能以及广泛的字体支持和集成的PDA功能.MAC OSX通过Classic环境几乎可以支持所有的MacOS9应用程序,直观的Aqua用户界面使Mac intosh的易用性又达到了一个全新的水平. 二.MAC硬盘中各个文件夹 打开Macintosh HD你会发现内中有四个文件夹,分别有——应用程序(Applicatio

linux开机启动项设置chkconfig命令使用

原文地址:http://www.jb51.net/LINUXjishu/66410.html 使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:chkconfig --list可能输出如下:openvpn 0:关闭 1:开启 ...... 6:关闭 (0-6 为启动级别 ; 关闭/开启为相应级别下该服务的自动启动选项)如果希望对自动启动选项做出改变,命令格式为:chkconfig --level x name on/offz.B. chkconfig

通过启动项设置实现应用程序自启动功能

上一篇通过WinForm+C#代码实现控制应用程序自启动功能,这篇讲下在不用代码情况下是如何利用电脑启动项来设置开机自启动,这也是一个很实用的技巧哦.我这里主要通过截图展示如何添加QQ自启动实现,当然我这里只是举例说明,其他应用程序设置同理. 具体实现步骤如下图: 开始菜单栏找到启动目录 右键菜单打开启动项文件夹 在 启动项文件夹添加需要启动快捷方式 添加自启动启动完成 以上步骤设置完成,小伙伴快快重启电脑看看效果吧~ 下次电脑重启就可以看到你设置的程序自启动了~ 希望以上分享对初学朋友有些帮助

解决Windows7上安装centos7双系统,Windows启动项消失的问题

解决centos下win7的启动项消失的方法 安装CentOS 7后,原来的Windows 7不会出现在启动项目里,网上查找一番后解决办法是修改grub.cfg文件.因为CentOS 7已采用新式的grub2系统,所以需要进入/boot/grub2目录后使用vi(或nano)编辑grub.cfg文件.: 将下面这段Windows 7的启动项声明: menuentry 'Windows 7 (loader) (on /dev/sda1)'{ set root=(hd0,1) chainloader

Windows和Linux双系统修改默认启动项、超时时间

修改/etc/default/grub, 然后update-grub. 执行命令 sudo gedit /etc/default/grub 主要内容为 # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: #   info -f grub -n 'Simpl