[MacOSX]_[LaunchDaemons]_[Mac OS X 安装Tomcat开机启动服务的方法之一]
2015-08-11 14:51
801 查看
场景:
1. Hudson作为持续集成软件,是需要在一个Java web容器部署的才能使用的,一般最常用的就是Tomcat.
2. Tomcat在Windows上部署安装Services很容易,使用自带的bat文件就能安装成功,麻烦的是并没有说明文档在Mac OS X下安装Services.
3. Mac OS X下是使用Daemon的方式启动的,也可以理解为服务.
4. 一般是执行startup.sh来启动,之后在用户与群组->当前用户->登录项里添加启动文件startup.sh,但也必须设置自动登录才可以.缺点是:1)不安全,服务器自动登录。2)这种方式会弹出一个命令行窗口,启动多几次就会出现很多窗口得自己关闭,影响其他界面工具的使用;所以这里介绍的是使用服务的方式启动;网上的资料好像也挺少的.
5. 如果只是为了安装,只需要看第一部分;深入理解可以看第二部分。
第一部分: 安装服务
1.安装服务,其实如果配置好plist,只需要这一步操作即可添加开机启动的服务.
org.apache.tomcat.plist 文件内容:
自定义部分:
-- ProgramArguments
这里修改为完整的catalina.sh路径 /Users/apple/Desktop/apache-tomcat-5.5.25/bin/catalina.sh
-- J***A_HOME
这里只能是绝对路径,不知道的在命令行使用 `/usr/libexec/java_home` 获取。关于Jdk1.7的安装相关参考文章:
/article/1562976.html
-- UserName
这里定义启动这个Job的用户名,默认使用root,所以必须设置自己的受限账户.
2.测试启动服务
加载配置文件.
3.启动完之后就可以打开http://localhost:8080看到我们熟悉的大脸猫了:
4.如果打开不了tomcat首页,那么开启plist里的输出(设置好路径,把注释去掉)
StandardOutPath
StandardErrorPath
5.如果测试启动服务成功,那么重启电脑应该会自启动。
注意:
1.每次修改plist文件都需要stop,remove(看下边) 掉 org.apache.tomcat 再 load(看第2步) 这个plist才能生效.
2.如果构建的时候需要操作界面,那么还得设置账号mac-server2开机自动登录,不然会报错:
3. 如果在构建的时候需要对App签名, 那么在程序 key access里把Login下的证书复制到System下,不然会报找不到证书到错误.
第二部分: 手动测试服务,以命令的方式快速启动服务,主要是写plist前的验证.
launchctl:
1. 快速验证启动服务程序是否能成功运行,不需要复制org.apache.tomcat.plist到 /Library/LaunchDaemons/ 下,意思是快速验证一个需要部署的程序是否能正确运行,当然配置也得和plist一样.
2. 停止服务
3. 移除当前job里的服务
4. 提示错误 launchctl run error: File exists
表示job已经启动过,需要先停止再移除才可以重新运行.
5. 配置的输出提示错误,说明没有配置 J***A_HOME 环境变量.
6. 设置环境变量
7. 删除环境变量
参考文档:
http://wiki.apache.org/tomcat/TomcatOnMacOS
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html#//apple_ref/doc/man/1/launchctl
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html
1. Hudson作为持续集成软件,是需要在一个Java web容器部署的才能使用的,一般最常用的就是Tomcat.
2. Tomcat在Windows上部署安装Services很容易,使用自带的bat文件就能安装成功,麻烦的是并没有说明文档在Mac OS X下安装Services.
3. Mac OS X下是使用Daemon的方式启动的,也可以理解为服务.
4. 一般是执行startup.sh来启动,之后在用户与群组->当前用户->登录项里添加启动文件startup.sh,但也必须设置自动登录才可以.缺点是:1)不安全,服务器自动登录。2)这种方式会弹出一个命令行窗口,启动多几次就会出现很多窗口得自己关闭,影响其他界面工具的使用;所以这里介绍的是使用服务的方式启动;网上的资料好像也挺少的.
5. 如果只是为了安装,只需要看第一部分;深入理解可以看第二部分。
第一部分: 安装服务
1.安装服务,其实如果配置好plist,只需要这一步操作即可添加开机启动的服务.
sudo cp org.apache.tomcat.plist /Library/LaunchDaemons/
org.apache.tomcat.plist 文件内容:
<?xml version="2.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>UserName</key> <string>mac-server2</string> <key>Label</key> <string>org.apache.tomcat</string> <key>KeepAlive</key> <dict> <key>NetworkState</key> <true/> </dict> <key>ProgramArguments</key> <array> <string>/Users/mac-server2/work/project_build/apache-tomcat-5.5.25/bin/catalina.sh</string> <string>run</string> </array> <key>EnvironmentVariables</key> <dict> <key>J***A_HOME</key> <string>/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home</string> </dict> <key>RunAtLoad</key> <true/> <key>StandardOutPath</key> <string>/Users/mac-server2/Desktop/stdout.log</string> <key>StandardErrorPath</key> <string>/Users/mac-server2/Desktop/stderr.log</string> </dict> </plist>
自定义部分:
-- ProgramArguments
这里修改为完整的catalina.sh路径 /Users/apple/Desktop/apache-tomcat-5.5.25/bin/catalina.sh
-- J***A_HOME
这里只能是绝对路径,不知道的在命令行使用 `/usr/libexec/java_home` 获取。关于Jdk1.7的安装相关参考文章:
/article/1562976.html
-- UserName
这里定义启动这个Job的用户名,默认使用root,所以必须设置自己的受限账户.
2.测试启动服务
加载配置文件.
launchctl load /Library/LaunchDaemons/org.apache.tomcat.plist launchctl start org.apache.tomcat
3.启动完之后就可以打开http://localhost:8080看到我们熟悉的大脸猫了:
4.如果打开不了tomcat首页,那么开启plist里的输出(设置好路径,把注释去掉)
StandardOutPath
StandardErrorPath
5.如果测试启动服务成功,那么重启电脑应该会自启动。
注意:
1.每次修改plist文件都需要stop,remove(看下边) 掉 org.apache.tomcat 再 load(看第2步) 这个plist才能生效.
2.如果构建的时候需要操作界面,那么还得设置账号mac-server2开机自动登录,不然会报错:
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
3. 如果在构建的时候需要对App签名, 那么在程序 key access里把Login下的证书复制到System下,不然会报找不到证书到错误.
Developer ID Application:XXX: no identity found
第二部分: 手动测试服务,以命令的方式快速启动服务,主要是写plist前的验证.
launchctl:
1. 快速验证启动服务程序是否能成功运行,不需要复制org.apache.tomcat.plist到 /Library/LaunchDaemons/ 下,意思是快速验证一个需要部署的程序是否能正确运行,当然配置也得和plist一样.
launchctl submit -l org.apache.tomcat -o `pwd`/stdout.log -e `pwd`/stderr.log -p /Users/apple/Desktop/apache-tomcat-5.5.25/bin/catalina.sh run
2. 停止服务
launchctl stop org.apache.tomcat
3. 移除当前job里的服务
launchctl remove org.apache.tomcat
4. 提示错误 launchctl run error: File exists
表示job已经启动过,需要先停止再移除才可以重新运行.
launchctl stop org.apache.tomcat launchctl remove org.apache.tomcat
5. 配置的输出提示错误,说明没有配置 J***A_HOME 环境变量.
Neither the J***A_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program
6. 设置环境变量
launchctl setenv J***A_HOME `/usr/libexec/java_home`
7. 删除环境变量
launchctl unsetenv J***A_HOME
参考文档:
http://wiki.apache.org/tomcat/TomcatOnMacOS
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html#//apple_ref/doc/man/1/launchctl
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html
相关文章推荐
- 服务器,使用Tomcat服务器(8.11)
- Tomcat多域名配置
- tomcat最多能占多大内存
- Apache Tomcat8必备知识
- Linux下Tomcat的安装配置
- nginx+tomcat实现动静分离(转)
- 在tomcat下部署war项目各种问题
- Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
- Nginx+Tomcat集群搭建
- tomcat结合nginx使用小结
- IntelliJ Idea中怪异出错bug,tomcat中和main中md5加密不一致
- Tomcat Session管理机制(Tomcat源码解析七)
- eclipse远程调试tomcat
- 解决MAC OS X Myeclipse 启动 Tomcat时控制台乱码问题
- 解决有些Eclipse无法启动安装的Tomcat而是Eclipse自带的Tomcat
- [ Tomcat ] 自动更新脚本
- Tomcat安装配置
- 修改tomcat浏览器地址栏图标
- 修改tomcat浏览器地址栏图标
- Tomcat类加载器机制(Tomcat源码解析六)