Mac--Launchctl介绍

摘要:
launchctl控制OSX系统中的启动过程。在Mac上,有一个名为Launchctl的命令行工具,可以用来控制服务的自动启动或关闭。Plist文件通常用于存储用户设置以及捆绑信息。Plist通过几个主要的CoreFoundation类型将数据组织为命名值和列表值:CFString、CFNumber、CFBoolean、CFDate、CFData、CFArray和CFDictionary。PROPERTYLIST XML标记当属性列表将CoreFoundation对象集合转换为XML属性列表时,文件类型标记用于包含所有属性列表。下表列出了CoreFoundation数据类型通常使用的其他标记:具有相同CoreFoundation类型的XML CoreFoundation XML标记CFString<string>CFNumber<real>或<integer>CFBoolean

Launchctl    控制OS X系统里的启动进程(launch) 

在Mac里有一个命令行工具叫做:launchctl,可以用来控制服务的自动启动或者关闭。一般的语法是
sudo launchctl load /path/to/service.plistsudo launchctl unload /path/to/service.plist
一般plist文件放在这j几个地方:

/Library/LaunchDaemons/   由管理员定义的守护进程任务项 
/Library/LaunchAgents/      由管理员为用户定义的任务项 
~/Library/LaunchAgents/     由用户自己定义的任务项 

 /System/Library/LaunchAgents   由Mac OS X为用户定义的任务项

你可以写一个plist文件放到~/Library/Launch Agents/下面,文件里描述你的程序路径和启动参数,那么这个用户登录时就会启动这个程序了,而且是杀不了的哦
被杀了之后会自动重新启动
如果需要把它停止的话,运行一下命令
launchctl unload ~/Library/Launch Agents/com.your company.porduct
如果放到/Library/Launch Agents/下面的话,就是一开机就启动哦~

Launchctl :控制OS X系统里的启动进程(launch) 


执行定时脚本|设置开机启动步骤 
(1)编写执行脚本 
通常brew在安装软件时brew为我们自动生成。 
(2)去对应的目录下建立plist文件 
(3)加载服务

说明:Agents文件夹下的plist是需要用户登录后,才会加载的,而Daemons文件夹下得plist是只要开机,可以不用登录就会被加载

加载/卸载服务 
cd 进入指定 plist 文件 目录 
launchctl load *.plist #加载 
launchctl unload *.plist #取消 
launchctl list #查看服务

launchctl load -w   **.pist #设置开机启动并立即启动改服务

launchctl load **.pist #设置开机启动但不立即启动服务 
2.4 对服务设置别名方便操作 
vim ~/.bash_profile #编辑添加如下脚本 
alias nginx.start=’launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist’ 
alias nginx.stop=’launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist’ 
alias nginx.restart=’nginx.stop && nginx.start’ 
alias php-fpm.start=”launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist” 
alias php-fpm.stop=”launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist” 
alias php-fpm.restart=’php-fpm.stop && php-fpm.start’ 
alias mysql.start=”launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist” 
alias mysql.stop=”launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist” 
alias mysql.restart=’mysql.stop && mysql.start’ 
alias redis.start=”launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist” 
alias redis.stop=”launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist” 
alias redis.restart=’redis.stop && redis.start’ 
alias memcached.start=”launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist” 
alias memcached.stop=”launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist” 
alias memcached.restart=’memcached.stop && memcached.start’

plist介绍

Plist的全称是Property lists,是一种用来存储串行化后的对象的文件。属性列表文件的文件扩展名为.plist,因此通常被称为plist文件。Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息。

Plist组织数据到命名值和列表值,主要通过几个主要的Core Foundation类型:CFString, CFNumber, CFBoolean, CFDate, CFData, CFArray, 和 CFDictionary。

Plist结构和内容

Property lists从基本的Core Foundation 类型:CFString,CFNumber,CFBoolean,CFDate,CFData构造。要建立一个复杂的数据结构从这些基本类型,你得把它们放在里面CFDictionary或CFArray里面。为了简化对Property lists的编程,任何属性列表类型也可以被引用通过使用类型CFPropertyListRef。

在一个CFDictionary,数据结构是以键-值对的形式,其中每个键是一个字符串,该键的值可以是一个CFString字符串,一个CFNumber,一个CFBoolean,一个CFDate,一个CFData,一个CFArray,或其他CFDictionary。当使用CFDictionary作为属性列表时,所有的键必须是字符串。

在一个CFArray,数据结构是以一个可以通过索引访问的对象的有序集合。在属性列表中,一个CFArray可以包含任何的基本属性列表类型,以及CFDictionary和其他CFArray的对象。

PROPERTY LIST XML 标签

当属性列表将Core Foundation对象集合转换成一个XML的属性列表,使用文件类型标签<plist>来包含所有的属性列表。下表中列出Core Foundation数据类型常用的其他标记:

Core Foundation数据类型等同的XML

Core Foundation类型

XML标签

CFString

<string>

CFNumber

<real> 或者 <integer>

CFBoolean

<true /> 或者<false />

CFDate

<date>

CFData

<data>

CFArray

<array>

CFDictionary

<dict>

免责声明:文章转载自《Mac--Launchctl介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用户使用VPS的12个常见问题MySQL监控、性能分析——工具篇下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】brew 更新问题

为什么要定期更新 我发现不少人都不会经常更新,或者只在必须用某个工具的新版本的时候才更新。他们的看法是,更新有可能产生一些意外的问题,反正当前环境足够稳定可以用,干嘛自找麻烦呢? 这个看法对也不对。对是因为,更新产生的潜在问题不可避免。不对是因为总有一天你需要升级的,也许是为了某个工具的新特性,也许是为了修复软件的漏洞,也许你安装的包非要依赖另一个包的新版...

Ansible安装并带您入门

一、简介 Puppet, SaltStack, Chef, Ansible都是服务器批量运维常用工具,其中Ansible最大的亮点在于”无客户端、简单易用和日志集中控管。”,不用帮每台机器 (instance) 预载 agent,只要有 SSH 和 Python 就可以。,本文介绍一下Ansible的基本使用。 二、结构 1、当 Control Mach...

CocoaPods安装和使用201712

CocoaPods安装使用详解 2017.12 首先,很有必要了解一下CocoaPods、Ruby和RubyGems,以及它们之间的关系。 CocoaPods是第三方库的辅助管理工具,依赖于Ruby。 Ruby是一种简捷的面向对象脚本语言。 RubyGems相当于Ruby的一个管理工具。 以下几个官网有必要看看, https://cocoapod...

mac os安装基本的install环境,命令行安装软件

以下摘自:homebrew官网。 在 OS X 中找不到您想要的软件?Homebrew 给你所需。 首先需要安装一个很多人都在用的包:homebrew 安装 Homebrew 开 Terminal, 复制并粘贴以下指令。 ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/in...

macOS10.13.2配置TensorFlow

安装Python python3是通过Homebrew安装的,默认安装的是3.7.0版本,但TensorFlow目前只能在3.4,3.5,3.6上安装,因此首先需要安装3.6版本的python。 首先运行命令 brew unlink python3 然后通过https://github.com/Homebrew/homebrew-core/commits...

MAC 忘记Homebrew安装的mysql密码

@ 目录 MAC 忘记Homebrew安装的mysql密码 一、依照百度其他的方法, 二、简单粗暴 1.直接在my.cnf 修改,跳过mysql密码验证 2.修改密码 3.恢复my.cnf 4.重启mysql 登录测试 MAC 忘记Homebrew安装的mysql密码 一、依照百度其他的方法, 先停掉MySQL服务,再用mysqld_saf...