Review Board 1.7.22


Run Flume Agent as Windows Service

Review Request #12822 - Created July 22, 2013 and updated

Sergey Sirotkin
FLUME-1336
Reviewers
Flume
flume-git
This patch adds files necessary to run Flume Agent as Windows Service.

I added two folders under \bin: win32 and win64. Both of them contain corresponding version of prunsrv.exe and two PowerShell scripts for installing/uninstalling FlumeAgent service: InstallService.ps1 and UninstallService.ps1.

In order to install the service, open PowerShell promptand type (I assume you have 64-bit operating system and 64-bit version of Java). You might need to enable script execution by running
Set-ExecutionPolicy RemoteSigned
then type:
cd \apache-flume\bin\win64
.\InstallService.ps1

After that service will be installed, and you can start it:
net start FlumeAgent

In order to uninstall service, do the following:
cd \apache-flume\bin\win64
.\UninstallService.ps1

Log files (including one created by prunsrv) are stored in logs.

x86 and x64 Versions
There are two versions of prunsrv for different architectures: x86 (32-bit) and x64 (64-bit). You need to choose which one to use based on the version of Java you have installed. I configured prunsrv to use such called JVM-mode. In that mode prunesrv.exe loads jvm.dll from JRE and then runs that VM. If you have 32-bit version of Java, 64-bit prunsrv will not be able to load 32-bit version of jvm.dll and service will not start.

 
Review request changed
Updated (July 22, 2013, 7:31 p.m.)
  • changed from FLUME-1336: Run Flume Agent as Windows Service to Run Flume Agent as Windows Service
Posted (July 23, 2013, 12:31 a.m.)
A few quick notes:
- InstallService should accept the agent name , conf file and other command line arguments .. since user can create multiple agents will need customization ability. 
- It would be better to invoke the actual startup windows script (not yet available) instead of the Application class
- Add a -help option to these service creation/removal scripts

Posted (July 23, 2013, 12:43 a.m.)
A few quick notes:
- InstallService should accept the agent name , conf file and other command line arguments .. since user can create multiple agents will need customization ability. 
- It would be better to invoke the actual startup windows script (not yet available) instead of the Application class
- Add a -help option to these service creation/removal scripts

  1. Hi Roshan, I updated the code.