Launchctl是用于控制OS X系统里的启动进程(launch)的工具。它可以执行定时脚本、设置开机启动步骤,以及加载和卸载服务。以下是关于Launchctl的一些详细信息:
2.1 执行定时脚本和设置开机启动步骤
(1)编写执行脚本:通常brew在安装软件时会为我们自动生成。
(2)去对应的目录下建立plist文件:
- ~/Library/LaunchAgents:由用户自己定义的任务项。
- /Library/LaunchAgents:由管理员为用户定义的任务项。
- /Library/LaunchDaemons:由管理员定义的守护进程任务项。
- /System/Library/LaunchAgents:由Mac OS X为用户定义的任务项。
说明:Agents文件夹下的plist是需要用户登录后才会加载的,而Daemons文件夹下得plist是只要开机就可以不用登录就会被加载。
2.2 plist指定目录介绍
2.3 加载/卸载服务
要加载或卸载服务,可以使用以下命令:
```bash
cd 进入指定 plist 文件目录
launchctl load
*
.plist #加载
launchctl unload
*
.plist #取消
launchctl list #查看服务
launchctl load -w **.pist #设置开机启动并立即启动改服务
launchctl load **.pist #设置开机启动但不立即启动服务
```
2.4 对服务设置别名方便操作
为了方便操作,可以为服务设置别名。例如,为Nginx和PHP-FPM设置别名:
```bash
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”
```
```markdown以下是根据提供的内容重构后的代码块:
```shell
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"
```
请注意,这些别名是针对 Homebrew 安装的 PHP-FPM、MySQL、Redis 和 Memcached 服务的。如果您使用的是不同的软件或环境,请相应地修改这些别名。