乐趣区

关于macos:Mac-开机自启动

微信公众号:[前端一锅煮]
一点技术、一点思考。
问题或倡议,请公众号留言。

launchd 是 Mac OS 下用于初始化零碎环境的要害过程,它是内核装载胜利之后在 OS 环境下启动的第一个过程,能够用来管制服务的主动启动或者敞开。

它的作用就是咱们平时说的守护过程,简略来说,用户守护过程是作为零碎的一部分运行在后盾的非图形化程序。

采纳这种形式来配置自启动项很简略,只须要一个 plist 文件,该文件存在的目录有:

用户登陆前 LaunchDaemons:

~/Library/LaunchDaemons

用户登录后 LaunchAgents:

~/Library/LaunchAgents

创立 plist 文件

咱们能够写一个 plist 文件放到 ~/Library/LaunchAgents 上面,文件里形容程序门路和启动参数,当咱们登录电脑时就会启动这个程序了,而且是杀不了的,被杀了之后会主动重新启动。

上面咱们以 mongodb 为例,演示下全过程。

  1. 首先创立一个 .plist 文件:
cd ~/Library/LaunchAgents && ls # 进入到目录

touch org.mongodb.mongod.plist # 创立 plist 文件 
  1. 复制以下内容
<?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>
        <dict>
            <key>SuccessfulExit</key>
            <false/>
        </dict>
        <key>Label</key>
        <string>org.mongodb.mongod</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mongodb/bin/mongod</string>
            <string>run</string>
            <string>--config</string>
            <string>/usr/local/etc/mongod.conf</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>WorkingDirectory</key>
        <string>/usr/local/var/mongodb</string>
        <key>StandardErrorPath</key>
        <string>/usr/local/var/log/mongodb/error.log</string>
        <key>StandardOutPath</key>
        <string>/usr/local/var/log/mongodb/mongo.log</string>
    </dict>
</plist>
  1. 批改程序门路和启动参数

粘贴方才复制的内容到 org.mongodb.mongod.plist 文件中,而后依据你本人的理论状况对下面的内容做批改:

  • mongod 装置门路 /usr/local/mongodb/bin/mongod 能够应用 which mongodb 命令查看具体的门路
  • mongod 配置文件门路 /usr/local/etc/mongod.conf 如果没有应用配置文件就把这个删除
  • mongodb 工作目录 /usr/local/var/mongodb
  • StandardErrorPath 谬误日志输入门路,能够在 mongod 配置文件中找到
  • StandardOutPath 信息日志输入门路,能够在 mongod 配置文件中找到

载入 plist 文件

编辑完 plist 文件当前,咱们须要将该文件载入到 launchd 里,应用 launchctl 命令,具体命令如下:

应用 launchctl 启动 mongodb

launchctl load -w ~/Library/LaunchAgents/org.mongodb.mongod.plist

进行 mongodb 的自启动

launchctl unload -w ~/Library/LaunchAgents/org.mongodb.mongod.plist

设置别名

为了使用方便,咱们能够给 mongodb 的开启和敞开命令设置别名:

vim ~/.bash_profile # 往配置文件中写入全局变量

# mongod 启动、进行、重启别名
alias mongod.start='launchctl load -w ~/Library/LaunchAgents/org.mongodb.mongod.plist'
alias mongod.stop='launchctl unload -w ~/Library/LaunchAgents/org.mongodb.mongod.plist'
alias mongod.restart='mongod.stop && mongod.start'

# redis 启动、进行、重启别名
alias redis.start='launchctl load -w ~/Library/LaunchAgents/org.redis.plist'
alias redis.stop='launchctl unload -w ~/Library/LaunchAgents/org.redis.plist'
alias redis.restart='redis.stop && redis.start'

# nginx 启动、进行、重启别名
alias nginx.start='launchctl load -w ~/Library/LaunchAgents/org.nginx.plist'
alias nginx.stop='launchctl unload -w ~/Library/LaunchAgents/org.nginx.plist'
alias redis.restart='nginx.stop && nginx.start'

soucre ~/.bash_profile # 执行使失效

plist 命令

Plist 的全称是 Property lists,是一种用来存储串行化后的对象的文件。

属性列表文件的文件扩大名为 .plist,因而通常被称为 plist 文件。

Plist 文件通常用于贮存用户设置,也能够用于存储捆绑的信息。

plist 命令:

launchctl load # 加载

launchctl unload # 勾销

launchctl list # 查看 launchctl 加载的服务

-w # 立刻启动批改

退出移动版