https://issues.apache.org/bugzilla/show_bug.cgi?id=56143
Bug ID: 56143 Summary: Allow "service.bat install" to be used in an non-UAC cmd.exe session Product: Tomcat 7 Version: 7.0.50 Hardware: PC Status: NEW Severity: enhancement Priority: P2 Component: Integration Assignee: dev@tomcat.apache.org Reporter: knst.koli...@gmail.com If you use a Microsoft Windows OS that has UAC and use service.bat script to install Tomcat as a service, you have to first launch command console (cmd.exe) in elevated privileges mode ("Run as administrator") and then call "service.bat install" from there. This requirement is mentioned in Tomcat documentation: http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html#Installing_services [quote] NOTE: On Windows Vista or any other operating system with User Account Control (UAC) you must either disable UAC or right-click on cmd.exe and select "Run as administrator" in order to run this script. If UAC is enabled being logged on with an Administrator account is not sufficient. [/quote] If you forget to launch cmd.exe in that mode and just run "service.bat install", with the current Tomcat versions (6.0.39, 7.0.50, 8.0.3) you will be prompted 3 times by UAC [3], but the service will be installed incorrectly. With r1565781 / r1567742 (7.0.52) this was improved and you will be prompted by UAC only once, but still the service will be installed incorrectly. The cause for this behaviour is that install command in service.bat script uses environment variables (such as PR_CLASSPATH) to pass parameters to service installer (prunsrv).[1] Apparently, when a child application is launched with elevated privileges it does not inherit environment variables from its parent. [2] The consequence is that a number of crucial settings in the installed service will be blank. For example, its classpath and its log path will be blank. As a result, an attempt to launch such service will fail shortly and silently, as Tomcat bootstrap classes are not found and logging is not configured either. (There will be some logs in %SystemRoot%\system32\LogFiles\Apache though). A workaround is to fix such configuration by using service configuration application (tomcat7w.exe) to configure missing options. I hope that this can be solved by changing service.bat so that all necessary options are passed as command-line arguments instead of variables. For reference: [1] Apache Commons Daemon documentation http://commons.apache.org/proper/commons-daemon/procrun.html [2] "Re: r1567742" thread on dev mailing list http://tomcat.markmail.org/thread/tjmwxc5vb5ut4zuq [3] Bug 56079 https://issues.apache.org/bugzilla/show_bug.cgi?id=56079#c6 -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org