162天前2019-06-28 18:23:57 |    抢沙发  278 
mac系统用起来是挺不错的,但是你知道怎么添加开机启动项吗,比如你编译安装了一个软件下个要添加到开机自动启动需要怎么做呢?跟我来。

mac

说明一下:

mac管理开机启动项是通过launchctl来进行管理的。下面以添加编译安装的elasticsearch为例子。

elasticsearch 安装目录/Users/Alex/software/elasticsearch-7.2.0

launchctl 的管理目录是在:/Library/LaunchDaemons

第一步:新建一个配置文件:

sudo vim /Library/LaunchDaemons/homebrew.mxcl.elasticsearch.plist
内容如下:
<?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>KeepAlive</key>
    <false/>
    <key>Label</key>
    <string>homebrew.mxcl.elasticsearch</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/Alex.zhao/software/elasticsearch-7.2.0/bin/elasticsearch</string>
    </array>
    <key>EnvironmentVariables</key>
    <dict>
    </dict>
    <key>RunAtLoad</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/usr/local/var</string>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/elasticsearch.log</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/elasticsearch.log</string>
  </dict>
</plist>

第二步:然后重置权限。
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.elasticsearch.plist
第三部:验证配置文件。
sudo plutil -lint /Library/LaunchDaemons/homebrew.mxcl.elasticsearch.plist
提示OK就行。

第三部:添加开机启动并立刻启动。

sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.elasticsearch.plist
如果要取消开机启动并立刻停止:
sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.elasticsearch.plist
不想要了直接删除文件就行。

是不是很简单。哈哈哈


下面再讲一下常规操作:

plist文件分别分布在如下位置:

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


launchctl 简介
launchctl  管理 MacOS 的启动脚本,控制启动计算机时需要开启的服务。也可以设置定时执行特定任务的脚本,就像Linux cron一样。
launchctl需要root权限。

launchctl 常用命令

1.显示当前的启动脚本

launchctl list
2.开机时自动启动Apache服务器
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
3.设置开机启动并立即启动改服务
launchctl load -w   homebrew.mxcl.nginx.plist 
4. 设置开机启动但不立即启动服务
launchctl load homebrew.mxcl.nginx.plist
5. 停止正在运行的启动脚本
sudo launchctl unload [path/to/script]
6. 再加上-w选项即可去除开机启动
sudo launchctl unload -w [path/to/script]
执行定时脚本|设置开机启动步骤:


1.写执行脚本 (通过 brew 安装软件 brew 会为我们自动生成。)
2. 去对应的目录下建立plist文件
3. 加载服务
    >1 cd 进入指定 plist 文件目录
    >2 launchctl load *.plist #加载
       launchctl unload *.plist #取消
    >3 launchctl list #查看服务


对服务设置别名方便操作
1. vim ~/.bash_profile #编辑添加如下脚本
2. 命名别名(以 nginx 为例)
    >启动: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'


注意点
1. 在launchctl list 命令结果中出现的 plist 文件才会有效。
2. Agents文件夹下的plist是需要用户登录后,才会加载的,而Daemons文件夹下得plist是只要开机,可以不用登录就会被加载.

发表评论

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享