Mac jenkins 开机启动设置

作者: 见闻无限 | 来源:发表于2017-05-15 21:21 被阅读1141次

更新一把,脚本的方式虽然可以做到开机启动的功能,但是始终有一个命令行程序在前台,非常不爽。
尝试通过Mac系统下的sudo launchctl load 命令完成Jenkins的开机启动功能。

一、launchctl load方式开机启动

参考其他的服务可以知道,Mac系统下的 /Library/LaunchAgents 和 /Library/LaunchDaemons 目录是用来存放一些开机启动的服务的plist。
那么homebrew安装的Jenkins是否可以通过这个方式来做呢?

homebrew启动分析

我们注意到,在homebrew安装完成的时候,提供了两个启动Jenkins的方式

install

使用 brew services start jenkins 开启的时候,其实是使用 /usr/local/Cellar/jenkins/2.61/homebrew.mxcl.jenkins.plist 这个plist文件完成的,打开这个文件可以我们看到

plist

可以看出来,服务是通过 /usr/bin/java 来启动的,目标任务就是/usr/local/Cellar/jenkins/2.61/libexec/jenkins.war

启动成功后可以看到

start

使用launchctl load启动

尝试通过以下命令来开启服务

sudo launchctl load -w /usr/local/Cellar/jenkins/2.61/homebrew.mxcl.jenkins.plist

提示权限不足,Path had bad ownership/permissions ,使用下面的命令配置权限

sudo chown root /usr/local/Cellar/jenkins/2.61/homebrew.mxcl.jenkins.plist

在此执行的时候成功了。
打开localhost:8080准备配置的时候,发现了问题

started

和之前启动的不是同一个服务,WTF!
原来在Jenkins安装的时候,默认会在当前xxxx用户和root用户下都生成一份工作目录,launchctl load 默认拉起的是root下的。

修改环境变量

这时候需要在plist文件中加入JENKINS_HOME的配置

<?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>EnvironmentVariables</key>
  <dict>
    <key>JENKINS_HOME</key>
    <string>/Users/xxxxxxxxxxxxxx/.jenkins</string>
  </dict>
    <key>Label</key>
    <string>com.jenkins.jenkins</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/bin/java</string>
      <string>-Dmail.smtp.starttls.enable=true</string>
      <string>-jar</string>
      <string>/usr/local/Cellar/jenkins/2.61/libexec/jenkins.war</string>
      <string>--httpListenAddress=127.0.0.1</string>
      <string>--httpPort=8080</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>

重新执行launchctl load,这个时候Jenkins就正常启动了



二、脚本方式开机启动

命令行安装的jenkins不自备开机启动功能,每次重启后都要命令行执行启动,非常麻烦,使用以下步骤可以在每次开机后自动拉起一个jenkins的命令行。

创建开机启动脚本 jenkinsBoot.sh

加入启动jenkins代码

1

设置脚本权限

sudo chmod 777 xxxx/jenkinsBoot.sh

2

设置脚本打开方式

3

设置脚本引用,使脚本可执行

chmod +x xxxx/jenkinsBoot.sh

加入用户的登录项

4

重新启动计算机,会发现自动执行了jenkinsBoot.sh这个脚本。

相关文章

  • Mac jenkins 开机启动设置

    更新一把,脚本的方式虽然可以做到开机启动的功能,但是始终有一个命令行程序在前台,非常不爽。尝试通过Mac系统下的s...

  • MAC启动项

    Mac设计开机启动项 MAC设置开机启动项分两种级别。简单和深度。 简单设置开机启动项 此种方法是通过系统->用户...

  • Jenkins学习-4.windows环境下设置为开机自启动

    要将 Jenkins 设置为 Windows 开机自启动,可以按照以下步骤进行操作: 打开 Jenkins 的安装...

  • Mac设置开机启动

    Mac设置开机启动 本文针对命令行使用的开发工具或自己编写的脚本设置开机启动,图形化界面的程序仅需要设置->用户与...

  • Mac设置自启动以及定时任务

    Mac设置开机启动项 由于最近使用到开机自启动以及定时任务的开启,在采坑的同事记录一下Mac自启动的以及定时任务开...

  • jenkins服务关闭不了

    用pkg包在mac上搭了jenkins,安装好之后会自动启动,并且默认开机自启动。结果服务一直占着8080端口,杀...

  • Mac 通过 Homebrew 安装 nginx 并设置开机启动

    Mac 通过 Homebrew 安装 nginx 并设置开机启动配置 步骤如下: brew install ngi...

  • Mac下HomeBrew安装和卸载Mysql

    安装Mysql 设置MySql开机启动 启动Mysql 停止Mysql(设置了开机启动) 停止Mysql(未设置开...

  • Linux 中 mysql 添加服务

    加入开机启动的命令,如下: 1.查看开机启动项 这里看到httpd和mysqld未设置开机自动启动2.设置开机启动...

  • Mac设置mongodb开机启动

    1、配置开机启动 确保终端运行 mongod -f mongodb.conf 可正常启动 创建一个plist文件在...

网友评论

  • swindler022:前提环境Jenkins已配置好,且配置了url,执行sudo launchctl load -w /usr/local/Cellar/jenkins/2.61/homebrew.mxcl.jenkins.plist后,localhost:8080可以打开Jenkins管理页面,浏览器输入url无法打开,请问是什么问题?

本文标题:Mac jenkins 开机启动设置

本文链接:https://www.haomeiwen.com/subject/cgfkxxtx.html