1. 为何需要部署成Windows Service

如果以cmd命令行来启动Carte,如果开发者不小心将此命令行窗口给关闭了,那么Carte服务也会随之关闭。因此将Carte部署成Windows Service能够有效地防止开发者错误地将Carte服务给杀掉。配置成Windows服务形式能够让Carte开机自动启动。

2. 目标

将Carte部署成Windows Service,让Carte能够随着操作系统的启动而自动启动。 
![show_carte_windows_service]({{ site.url }}/assets/image/carte-deploy-for-windows-service/show_carte_windows_service.png)

参考:Carte as a Windows Service

3. 部署步骤

3.1 下载YAJSW

AJSW是一个开源的Java服务包装(Java Service Wrapper)工具。YAJSW允许您把任何应用程序安装为window的服务或者作为一个Linux posix的守护进程进行监控。 
将下载的压缩包解压到合适的目录下,并重命名为default,eg:将压缩包解压到D:\Pentaho\CarteService\default

3.2 配置wrapper.conf

将提供的wrapper.conf.pentaho_installer_notes拷贝到<CarteServiceFolder>/conf目录下并重命名为wrapper.conf,并对以下配置项进行配置:

(1) wrapper.working.dir

指定kettle根目录

wrapper.working.dir=D:/kettle5.3

(2) wrapper.java.app.jar

指定kettle启动jar

wrapper.java.app.jar = .\\launcher\\pentaho-application-launcher-5.3.0.0-213.jar

【注意】 kettle4.x和5.x对应的jar命名是不一样的,根据具体版本的文件命名来配置

![show_kettle_lancher]({{ site.url }}/assets/image/carte-deploy-for-windows-service/show_kettle_launcher.png)

(3) wrapper.java.command

指定java.exe所在的目录

wrapper.java.command = D:/Program Files/Java/jdk1.7.0_55_X64/bin/java.exe

(4) wrapper.app.parameter.3

指定Carte服务绑定的ip

wrapper.app.parameter.3 = 192.168.31.33

(5) wrapper.app.parameter.4

指定Carte服务绑定的端口号

wrapper.app.parameter.4 = 8081

(6) wrapper.java.additional.1

指定Carte服务所占用的最大内存

wrapper.java.additional.1 = -Xmx512m

3.3 运行测试

双击运行

<CarteServiceFolder>\bat\runConsole.bat

如果出现以下输出,证明配置成功并能够成功运行Carte

![show_runConsole_success]({{ site.url }}/assets/image/carte-deploy-for-windows-service/show_runConsole_success.png)

3.4 安装成Windows Service

在完成3.3测试之后退出命令行,双击运行

<CarteServiceFolder>\bat\installService.bat

此时就已经将Carte安装成Windows Service了。

3.5 运行或者停止Carte

(1) 可以通过查找”Windows服务”来启动或者停止Carte服务

(2) 通过

net start [carte_name] 

net stop [carte_name]

来启动或者停止Carte服务

4. 单机部署多Carte服务

可以通过配置不同的服务名和监听端口,在同一台机器上部署多个Carte服务,复制多份解压后的<CarteServiceFolder>在同一个目录下。

修改不同目录下的wrapper.conf让以下配置唯一:

【defulat wrapper.conf】

wrapper.ntservice.name=pentaho_carte_8081
wrapper.ntservice.displayname=Pentaho DI Carte Port With 8081
wrapper.app.parameter.4=8081
wrapper.tray = false

【carte_8082 wrapper.conf】

wrapper.ntservice.name=pentaho_carte_8082
wrapper.ntservice.displayname=Pentaho DI Carte Port With 8082
wrapper.app.parameter.4=8082
wrapper.tray = false

完成以上配置后按照3.3和3.4的步骤即可以在同一台机器上部署并运行多个Carte服务

5. 更详细的Carte启动配置
使用xml文件配置Carte的文档请参考:

Carte XML配置

使用yajsw配置carte启动使用xml配置文件的方法如下:

修改wrapper.conf如下所示:

wrapper.app.parameter.1 = -main
wrapper.app.parameter.2 = org.pentaho.di.www.Carte
wrapper.app.parameter.3 = ./pwd/carte-config-8081.xml
#wrapper.app.parameter.3 = 192.168.31.33
#wrapper.app.parameter.4 = 8081

把原来的wrapper.app.parameter.4注释掉,其中wrapper.app.parameter.3改为具体的配置文件,如图中所示 ./pwd/carte-config-8081.xml 的绝对路径为 ${wrapper.working.dir}/pwd/carte-config-8081.xml

【注意】 其中wrapper.working.dir是另外一个需要配置的参数,这个参数的说明参考3.2节

将Carte部署为Windows服务相关推荐

  1. 利用Topshelf把.NET Core Generic Host管理的应用程序部署为Windows服务

    2019第一篇文章. 此文源于前公司在迁移项目到.NET Core的过程中,希望使用Generic Host来管理定时任务程序时,没法部署到Windows服务的问题,而且官方也没给出解决方案,只能关注 ...

  2. SpringBoot打包部署成Windows服务的详细步骤

    SpringBoot打包部署成Windows服务的详细步骤 1.SpringBoot 1.1 pom.xml 1.2 项目代码 1.2.1 项目结构 1.2.2 Controller的代码 1.2.3 ...

  3. python脚本部署为Windows服务

    python脚本部署为Windows服务 基础需求环境:python环境(不会安装建议ctrl+w, 你已经退出接下来的教程了)windows环境(需要了解环境变量的配置和服务位置) 好了,开始吧. ...

  4. .NET Core Generic Host项目使用Topshelf部署为Windows服务

    1..NET Core Generic Host是什么? 在.NET Core 2.1版本加入了一种新的Host,即Generic Host(通用主机). 现在在2.1版本的Asp.Net Core中 ...

  5. 把 Console 部署成 Windows 服务,四种方式总有一款适合你!

    一:背景 1. 讲故事 上周有一个项目交付,因为是医院级项目需要在客户的局域网独立部署.程序:netcore 2.0,操作系统:windows server 2012,坑爹的事情就来了, netcor ...

  6. Windows服务初探

    在Windows中,对于一些不需要显示图形界面的应用程序,我们可以把它做成Windows服务,让它在后台运行,例如一些文件监视服务等.一台电脑中的Windows服务可以在"计算机-管理-服务 ...

  7. 基于SignalR实现B/S系统对windows服务运行状态的监测

    通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...

  8. 在5分钟内将Spring Boot作为Windows服务启动

    最近,我不得不将Spring Boot应用程序部署为Windows服务,并且对使用winsw如此容易感到惊讶. 我之前曾写过关于使用procrun – Java程序作为Windows服务的文章 ,但是 ...

  9. windows 服务中托管asp.net core

    在windows 服务中托管asp.net core SDK 2.1.300 官方示例 1.添加运行标识符 xml <PropertyGroup> <TargetFramework& ...

最新文章

  1. mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询
  2. 解决GitHub加载不出图片问题
  3. 富文本++php+源码,自己实现富文本编辑器
  4. docker镜像和容器区别
  5. java如何连接mysql_Java如何连接数据库
  6. 自动化审批决策树助你面试更上一层楼
  7. 在Intranet环境中保护.NETWeb应用程序方案(转)
  8. JAVA正则表达式及常用类
  9. SQL*Plus环境下创建PLUSTRACE角色
  10. 书籍-Java性能调优指南
  11. Java Runtime 详解
  12. 中国物联网激荡的20年发展
  13. HTML零基础入门教程完整版
  14. 移动H5手势密码解锁插件--demo
  15. video.js的简单用法
  16. 全国哀悼日 网站变灰代码集锦
  17. tplink路由器设置网址方法
  18. Banner大小之国际标准
  19. python爬取酷狗音乐top500及歌词_爬取酷狗音乐Top500(示例代码)
  20. 个人计算机培训校本研修总结,个人研修总结

热门文章

  1. 计算机主板测试配件,如何检测主板是否有问题_如何诊断主板是否损坏,没有图形步骤...
  2. Android中手写签名的实现
  3. 灵遁者句子:意识从物质诞生那一刻起,就诞生了
  4. Matlab里关于T2F/F2T/lpf.m函数调用应注意的问题及函数修改
  5. 高中数学之向量外积的运用
  6. STM32基于HAL工程硬件I2C读写AT24C02/04/08数据
  7. akoj-1267-独木舟上的荡漾
  8. 【Unity】Obi插件系列(七)—— Obi Emitters
  9. 关于“微笑涛声”博客
  10. 软件测试—第五章白盒测试.逻辑覆盖法