Hi Ivan, As Mike referenced, the NiFi bootstrap process changed significantly for NiFi 2. It is important to note that the NiFi start command actually launches two Java processes: the bootstrap process and the application process. The bootstrap process is more analogous to what Procrun does in terms of life cycle control over the application process.
The particular issue after the change appears to be that NiFi uses the launching command NiFiService.exe, but the launching command is expected to be the Java command binary. Procrun is not officially supported, but you will have better results by attempting to launch the org.apache.nifi.NiFi class directly. The bootstrap process forms that command, so you would have to duplicate the logic by examining the NiFi source code, although the output provided shows a reasonable starting point. Regards, David Handermann On Wed, Feb 12, 2025, 8:08 AM Michael Moser <moser...@gmail.com> wrote: > This error feels like a Procrun configuration problem, so I'm afraid I > won't be much help. > > A quick scan of Procrun documentation suggests using --Classpath instead of > --class-path. Verify your arguments are Procrun arguments (to your > NiFiService.exe) and not straight Java arguments (to java.exe). > > Regards, > -- MIke > > > On Tue, Feb 11, 2025 at 7:29 PM Ivan Dolinin <idoli...@cleverdevices.com> > wrote: > > > Hello Michael, > > > > thank you, the error went away after i changed the bootstrap class. > > However, i ran into another problem, where the procrun .exe file > > "NiFiService.exe"" is called with unsupported --class-path option. Our > > service installation options did not change - is there an obvious > incorrect > > action we are performing? > > > > from the nifi-bootstrap.log: > > > > 2025-02-11 19:24:26,873 INFO [main] o.a.n.b.command.RunBootstrapCommand > > Java Version: 21.0.5+11-LTS > > 2025-02-11 19:24:26,873 INFO [main] o.a.n.b.command.RunBootstrapCommand > > Available Processors: 4 > > 2025-02-11 19:24:26,967 INFO [main] o.a.n.b.command.RunBootstrapCommand > > D:\NiFi\nifi-2.2.0\bin\NiFiService.exe --class-path > > > D:\NiFi\nifi-2.2.0\lib\jcl-over-slf4j-2.0.16.jar;D:\NiFi\nifi-2.2.0\lib\jul-to-slf4j-2.0.16.jar;D:\NiFi\nifi-2.2.0\lib\log4j-over-slf4j-2.0.16.jar;D:\NiFi\nifi-2.2.0\lib\logback-classic-1.5.16.jar;D:\NiFi\nifi-2.2.0\lib\logback-core-1.5.16.jar;D:\NiFi\nifi-2.2.0\lib\nifi-api-2.0.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-framework-api-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-nar-utils-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-per-process-group-logging-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-properties-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-property-utils-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-python-framework-api-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-runtime-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-server-api-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\nifi-stateless-api-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\slf4j-api-2.0.16.jar;D:\NiFi\nifi-2.2.0\conf > > -Dorg.apache.nifi.bootstrap.config.log.dir=D:\NiFi\nifi-2.2.0\logs > > -Dnifi.properties.file.path=D:\NiFi\nifi-2.2.0\conf\nifi.properties > > -Dorg.apache.nifi.management.server.address=127.0.0.1:52020 -Xms1g > -Xmx1g > > -Dsun.net.http.allowRestrictedHeaders=true > > -Djava.protocol.handler.pkgs=sun.net.www.protocol > > -Dcurator-log-only-first-connection-issue-as-error-level=true > > -Djava.awt.headless=true -Djavax.security.auth.useSubjectCredsOnly=true > > org.apache.nifi.NiFi > > 2025-02-11 19:24:26,982 INFO [main] org.apache.nifi.bootstrap.Command > > Application Process [3348] started > > 2025-02-11 19:24:26,982 INFO [main] org.apache.nifi.bootstrap.Command > > Bootstrap Process Running > > > > stderror.txt: > > [2025-02-11 19:24:27] [error] [ 9064] Unrecognized cmd option > --class-path > > [2025-02-11 19:24:27] [error] [ 9064] Invalid command line arguments. > > [2025-02-11 19:24:27] [error] [ 9064] Apache Commons Daemon procrun > failed > > with exit value: 1 (failed to parse command line arguments). > > > > > > Ivan Dolinin / (416) 583-5833 x2012 / idoli...@cleverdevices.com > > > > > > > > ------------------------------ > > *From:* Michael Moser <moser...@gmail.com> > > *Sent:* Friday, February 7, 2025 4:03 PM > > *To:* NiFi Developers List <dev@nifi.apache.org> > > *Cc:* Ivan Dolinin <idoli...@cleverdevices.com> > > *Subject:* Re: Starting class NiFi 2.2 > > > > Hello Ivan, > > > > Apache NiFi 2.0.0 reworked the bootstrap process in [1], and the > bootstrap > > class is now org.apache.nifi.bootstrap.BootstrapProcess. > > > > Note that there was recently a bug fix [2] in the Windows bootstrap > > process that may affect you. > > > > [1] - https://issues.apache.org/jira/browse/NIFI-13665 > > [2] - https://issues.apache.org/jira/browse/NIFI-14156 > > > > -- Mike > > > > > > > > On Fri, Feb 7, 2025 at 1:47 PM Ivan Dolinin > > <idoli...@cleverdevices.com.invalid> wrote: > > > > Hello, > > > > we had Apache Procrun successfully starting NiFi 1.23.2 from class > > org.apache.nifi.bootstrap.RunNiFi. > > > > We upgraded to NiFi 2.2. The procrun service installation picks up > startup > > class org.apache.nifi.bootstrap.BootstrapListener but it cannot be found. > > Is that a startup class we could use? here is the service log output: > > > > [2025-02-07 11:58:11] [debug] ( prunsrv.c:2076) [10856] Apache Commons > > Daemon procrun log initialized. > > [2025-02-07 11:58:11] [info] ( prunsrv.c:2084) [10856] Apache Commons > > Daemon procrun (1.4.1.0 64-bit) started. > > [2025-02-07 11:58:11] [info] ( prunsrv.c:1930) [10856] Running Service > > 'NiFiService2'... > > [2025-02-07 11:58:11] [debug] ( prunsrv.c:1681) [10836] Inside > > serviceMain()... > > [2025-02-07 11:58:11] [debug] ( prunsrv.c:1127) [10836] > > reportServiceStatusE: dwCurrentState = 2 (SERVICE_START_PENDING), > > dwWin32ExitCode = 0, dwWaitHint = 3000 milliseconds, > > dwServiceSpecificExitCode = 0. > > [2025-02-07 11:58:11] [info] ( prunsrv.c:1426) [10836] Starting > service... > > [2025-02-07 11:58:11] [debug] ( prunsrv.c:499 ) [10836] Checking Java > > options for environment variable requirements > > [2025-02-07 11:58:11] [debug] ( prunsrv.c:503 ) [10836] Checking > > environment variable requirements for > > '-Dorg.apache.nifi.bootstrap.config.log.dir=D:\NiFi\nifi-2.2.0\logs' > > [2025-02-07 11:58:11] [debug] ( prunsrv.c:503 ) [10836] Checking > > environment variable requirements for > > '-Dorg.apache.nifi.bootstrap.config.pid.dir=D:\NiFi\nifi-2.2.0\run' > > [2025-02-07 11:58:11] [debug] ( prunsrv.c:503 ) [10836] Checking > > environment variable requirements for > > > '-Dorg.apache.nifi.bootstrap.config.file=D:\NiFi\nifi-2.2.0\conf\bootstrap.conf > > ' > > [2025-02-07 11:58:11] [debug] ( javajni.c:216 ) [10836] Explicit > > RuntimeLib specified 'C:\Program > > Files\CleverDevices\zulu_jre_21_38_21_fx\bin\server\jvm.dll' > > [2025-02-07 11:58:11] [debug] ( javajni.c:285 ) [10836] Adding Java bin > > path to the PATH to fix loading of awt.dll: 'C:\Program > > Files\CleverDevices\zulu_jre_21_38_21_fx\bin' > > [2025-02-07 11:58:11] [debug] ( javajni.c:291 ) [10836] Loading JVM DLL > > 'C:\Program Files\CleverDevices\zulu_jre_21_38_21_fx\bin\server\jvm.dll' > > [2025-02-07 11:58:11] [debug] ( javajni.c:419 ) [10836] Loaded JVM DLL > > 'C:\Program Files\CleverDevices\zulu_jre_21_38_21_fx\bin\server\jvm.dll', > > home '(null)'. > > [2025-02-07 11:58:11] [debug] ( javajni.c:424 ) [10836] > > JNI_GetCreatedJavaVMs... > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[0] > > -Dorg.apache.nifi.bootstrap.config.log.dir=D:\NiFi\nifi-2.2.0\logs > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[1] > > -Dorg.apache.nifi.bootstrap.config.pid.dir=D:\NiFi\nifi-2.2.0\run > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[2] > > > -Dorg.apache.nifi.bootstrap.config.file=D:\NiFi\nifi-2.2.0\conf\bootstrap.conf > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[3] > > > -Djava.class.path=D:\NiFi\nifi-2.2.0\conf;D:\NiFi\nifi-2.2.0\lib\bootstrap\bcpkix-jdk18on-1.80.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\bcprov-jdk18on-1.80.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\bcrypt-0.10.2.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\bcutil-jdk18on-1.80.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\bytes-1.5.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\jackson-annotations-2.18.2.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\jackson-core-2.18.2.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\jackson-databind-2.18.2.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\logback-classic-1.5.16.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\logback-core-1.5.16.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-api-2.0.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-bootstrap-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-flow-encryptor-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-per-process-group-logging-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-property-encryptor-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-security-cert-builder-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-security-crypto-key-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-single-user-utils-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\nifi-xml-processing-2.2.0.jar;D:\NiFi\nifi-2.2.0\lib\bootstrap\slf4j-api-2.0.16.jar; > > D:\NiFi\nifi-2.2.0\lib > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[4] > exit > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[5] > abort > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[6] > > -Xms128m > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[7] > > -Xmx512m > > [2025-02-07 11:58:11] [debug] ( javajni.c:822 ) [ 6004] JVM Option[8] > > -Xss4000k > > [2025-02-07 11:58:12] [error] ( javajni.c:983 ) [ 6004] FindClass > > org/apache/nifi/bootstrap/BootstrapListener failed > > [2025-02-07 11:58:12] [debug] ( javajni.c:1092) [ 6004] Java worker > thread > > finished org/apache/nifi/bootstrap/BootstrapListener:main with status = 3 > > [2025-02-07 11:58:12] [error] ( prunsrv.c:1487) [10836] Failed to start > > Java > > [2025-02-07 11:58:12] [error] ( prunsrv.c:1862) [10836] ServiceStart > > returned 4. > > [2025-02-07 11:58:12] [debug] ( prunsrv.c:1127) [10836] > > reportServiceStatusE: dwCurrentState = 1 (SERVICE_STOPPED), > dwWin32ExitCode > > = 1066, dwWaitHint = 0 milliseconds, dwServiceSpecificExitCode = 4. > > [2025-02-07 11:58:12] [info] ( prunsrv.c:1932) [10856] Run service > > finished. > > [2025-02-07 11:58:12] [info] ( prunsrv.c:2190) [10856] Apache Commons > > Daemon procrun finished. > > > > Thanks, > > > > > > Ivan Dolinin > > > > Principal Software Developer > > > > Clever Devices > > > > Transit Matters Here. > > > > Office: (416) 583-5833 x2012 > > > > idoli...@cleverdevices.com<mailto:idoli...@cleverdevices.com> > > > > www.cleverdevices.com<http://www.cleverdevices.com/> > > > > > > >