-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Mark,

On 8/8/19 08:19, ma...@apache.org wrote:
> This is an automated email from the ASF dual-hosted git
> repository.
> 
> markt pushed a commit to branch master in repository
> https://gitbox.apache.org/repos/asf/tomcat.git
> 
> commit 7ac5fc8a59c10e7de1ee6d4b85c1ee797942a1e7 Author: Mark Thomas
> <ma...@apache.org> AuthorDate: Thu Aug 8 13:17:29 2019 +0100
> 
> Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63285
> 
> Align the behaviour of service.bat with the Windows installer and
> rename the executables on installation (and restore on removal).

If I understand this patch, I might need to veto it for Tomcat 9.
Changing for TC 10 will be okay.

Re-naming the Tomcat .exe files on Windows will be a very surprising
change for a point-release. Every installation I've ever worked on has
multiple services running off the same Tomcat installation. If any of
them is upgraded without adding the "--no-rename" option to an
invocation of the service.bat script, all automation will begin to
fail. That includes services which *are not* reconfigured because the
TomcatX.exe file will be renamed and still referenced in various
service definitions.

Thanks,
- -chris

> --- bin/service.bat                        | 110
> ++++++++++++++++++++++----------- webapps/docs/changelog.xml
> |   9 +++ webapps/docs/windows-service-howto.xml |  14 ++++- 3
> files changed, 94 insertions(+), 39 deletions(-)
> 
> diff --git a/bin/service.bat b/bin/service.bat index
> 5d9e053..6105b15 100755 --- a/bin/service.bat +++
> b/bin/service.bat @@ -17,7 +17,7 @@ rem limitations under the
> License. rem
> ----------------------------------------------------------------------
- -----
>
> 
rem NT Service Install/Uninstall script
> rem -rem Usage: service.bat install/remove [service_name] [/user
> username] +rem Usage: service.bat install/remove [service_name
> [--no-rename]] [--user username] rem rem Options rem install
> Install the service using default settings. @@ -26,7 +26,10 @@ rem 
> rem service_name (optional) The name to use for the service. If not
> specified, rem                         Tomcat@VERSION_MAJOR@ is
> used as the service name. rem -rem username (optional)     The name
> of the OS user to use to install/remove +rem --no-rename
> (optional) Don't rename tomcat@VERSION_MAJOR@.exe and
> tomcat@version_ma...@w.exe to match +rem
> the non-default service name. +rem +rem username     (optional) The
> name of the OS user to use to install/remove rem
> the service (not the name of the OS user the rem
> service will run as). If not specified, the current rem
> user is used. @@ -35,21 +38,70 @@ rem
> ----------------------------------------------------------------------
- -----
>
> 
setlocal
> 
> set "SELF=%~dp0%service.bat" -rem Guess CATALINA_HOME if not
> defined + +set DEFAULT_SERVICE_NAME=Tomcat@VERSION_MAJOR@ +set
> SERVICE_NAME=%DEFAULT_SERVICE_NAME% + set "CURRENT_DIR=%cd%" + +rem
> Parse the arguments +if "x%1x" == "xx" goto displayUsage +set
> SERVICE_CMD=%1 +shift +if "x%1x" == "xx" goto checkEnv +:checkUser 
> +if "x%1x" == "x/userx" goto runAsUser +if "x%1x" == "x--userx"
> goto runAsUser +set SERVICE_NAME=%1 +shift +if "x%1x" == "xx" goto
> checkEnv +if "x%1x" == "x--no-renamex" ( +    set NO_RENAME=%1 +
> shift +) +if "x%1x" == "xx" goto checkEnv +goto checkUser 
> +:runAsUser +shift +if "x%1x" == "xx" goto displayUsage +set
> SERVICE_USER=%1 +shift +runas /env /savecred /user:%SERVICE_USER%
> "%COMSPEC% /K \"%SELF%\" %SERVICE_CMD% %SERVICE_NAME%" +goto end + 
> +rem Check the environment +:checkEnv + +rem Guess CATALINA_HOME if
> not defined if not "%CATALINA_HOME%" == "" goto gotHome set
> "CATALINA_HOME=%cd%" -if exist
> "%CATALINA_HOME%\bin\tomcat@VERSION_MAJOR@.exe" goto okHome +if
> exist "%CATALINA_HOME%\bin\%DEFAULT_SERVICE_NAME%.exe" goto okHome 
> +if exist "%CATALINA_HOME%\bin\%SERVICE_NAME%.exe" goto okHome rem
> CD to the upper dir cd .. set "CATALINA_HOME=%cd%" :gotHome -if
> exist "%CATALINA_HOME%\bin\tomcat@VERSION_MAJOR@.exe" goto okHome 
> -echo The tomcat@VERSION_MAJOR@.exe was not found... -echo The
> CATALINA_HOME environment variable is not defined correctly. -echo
> This environment variable is needed to run this program +if exist
> "%CATALINA_HOME%\bin\%DEFAULT_SERVICE_NAME%.exe" ( +    set
> "EXECUTABLE=%CATALINA_HOME%\bin\%DEFAULT_SERVICE_NAME%.exe" +
> goto okHome +) +if exist "%CATALINA_HOME%\bin\%SERVICE_NAME%.exe"
> ( +    set "EXECUTABLE=%CATALINA_HOME%\bin\%SERVICE_NAME%.exe" +
> goto okHome +) +if "%DEFAULT_SERVICE_NAME%"== "%SERVICE_NAME%" ( +
> echo The file %DEFAULT_SERVICE_NAME%.exe was not found... +) else
> ( +    echo Neither the %DEFAULT_SERVICE_NAME%.exe file nor the
> %SERVICE_NAME%.exe file was found... +) +echo Either the
> CATALINA_HOME environment variable is not defined correctly or 
> +echo the incorrect service name has been used. +echo Both the
> CATALINA_HOME environment variable and the correct service name 
> +echo are required to run this program. goto end :okHome +cd
> "%CURRENT_DIR%" + rem Make sure prerequisite environment variables
> are set if not "%JAVA_HOME%" == "" goto gotJdkHome if not
> "%JRE_HOME%" == "" goto gotJreHome @@ -81,12 +133,6 @@ if not
> "%CATALINA_BASE%" == "" goto gotBase set
> "CATALINA_BASE=%CATALINA_HOME%" :gotBase
> 
> -set "EXECUTABLE=%CATALINA_HOME%\bin\tomcat@VERSION_MAJOR@.exe" - 
> -rem Set default Service name -set
> SERVICE_NAME=Tomcat@VERSION_MAJOR@ -set DISPLAYNAME=Apache Tomcat
> @VERSION_MAJOR_MINOR@ %SERVICE_NAME% - rem Java 9 no longer
> supports the java.endorsed.dirs rem system property. Only try to
> use it if rem JAVA_ENDORSED_DIRS was explicitly set @@ -100,33
> +146,14 @@ if not exist "%CATALINA_HOME%\endorsed" goto
> doneEndorsed set ENDORSED_PROP=java.endorsed.dirs :doneEndorsed
> 
> -if "x%1x" == "xx" goto displayUsage -set SERVICE_CMD=%1 -shift -if
> "x%1x" == "xx" goto checkServiceCmd -:checkUser -if "x%1x" ==
> "x/userx" goto runAsUser -if "x%1x" == "x--userx" goto runAsUser 
> -set SERVICE_NAME=%1 -set DISPLAYNAME=Apache Tomcat
> @VERSION_MAJOR_MINOR@ %1 -shift -if "x%1x" == "xx" goto
> checkServiceCmd -goto checkUser -:runAsUser -shift -if "x%1x" ==
> "xx" goto displayUsage -set SERVICE_USER=%1 -shift -runas /env
> /savecred /user:%SERVICE_USER% "%COMSPEC% /K \"%SELF%\"
> %SERVICE_CMD% %SERVICE_NAME%" -goto end -:checkServiceCmd +rem
> Process the requested command if /i %SERVICE_CMD% == install goto
> doInstall if /i %SERVICE_CMD% == remove goto doRemove if /i
> %SERVICE_CMD% == uninstall goto doRemove echo Unknown parameter
> "%SERVICE_CMD%" :displayUsage echo. -echo Usage: service.bat
> install/remove [service_name] [/user username] +echo Usage:
> service.bat install/remove [service_name [--no-rename]] [--user
> username] goto end
> 
> :doRemove @@ -141,6 +168,10 @@ echo Failed removing
> '%SERVICE_NAME%' service goto end :removed echo The service
> '%SERVICE_NAME%' has been removed +if exist
> "%CATALINA_HOME%\bin\%SERVICE_NAME%.exe" ( +    rename
> "%SERVICE_NAME%.exe" "%DEFAULT_SERVICE_NAME%.exe" +    rename
> "%SERVICE_NAME%w.exe" "%DEFAULT_SERVICE_NAME%w.exe" +) goto end
> 
> :doInstall @@ -169,6 +200,14 @@ if "%SERVICE_STARTUP_MODE%" == ""
> set SERVICE_STARTUP_MODE=manual if "%JvmMs%" == "" set JvmMs=128 if
> "%JvmMx%" == "" set JvmMx=256
> 
> +if exist "%CATALINA_HOME%\bin\%DEFAULT_SERVICE_NAME%.exe" ( +
> if "x%NO_RENAME%x" == "xx" ( +        rename
> "%DEFAULT_SERVICE_NAME%.exe" "%SERVICE_NAME%.exe" +        rename
> "%DEFAULT_SERVICE_NAME%w.exe" "%SERVICE_NAME%w.exe" +        set
> "EXECUTABLE=%CATALINA_HOME%\bin\%SERVICE_NAME%.exe" +    ) +) + 
> "%EXECUTABLE%" //IS//%SERVICE_NAME% ^ --Description "Apache Tomcat
> @VERSION@ Server - https://tomcat.apache.org/"; ^ --DisplayName
> "%DISPLAYNAME%" ^ @@ -198,4 +237,3 @@ goto end echo The service
> '%SERVICE_NAME%' has been installed.
> 
> :end -cd "%CURRENT_DIR%" diff --git a/webapps/docs/changelog.xml
> b/webapps/docs/changelog.xml index d81703c..c2419a7 100644 ---
> a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@
> -203,6 +203,15 @@ with Apache Tomcat. (remm) </add> <fix> +
> <bug>63285</bug>: Modify <code>service.bat</code> so that when +
> installing a Windows service, by default, it changes the name of
> the +        executables used by the Windows service to match the
> service name. This +        makes the installation behaviour
> consistent with the Windows installer. +        The original
> executable names will be restored when the Windows service +
> is removed. The renaming can be disabled by using the new +
> <code>--no-rename</code> option after the service name. (markt) +
> </fix> +      <fix> <bug>63567</bug>: Restore the passing of
> <code>$LOGGING_MANAGER</code> to the jvm in
> <code>catalina.sh</code> when calling <code>stop</code>. (markt) 
> diff --git a/webapps/docs/windows-service-howto.xml
> b/webapps/docs/windows-service-howto.xml index d3c69b9..b9215f7
> 100644 --- a/webapps/docs/windows-service-howto.xml +++
> b/webapps/docs/windows-service-howto.xml @@ -346,9 +346,9 @@
> script. If necessary, you can use the <code>/user</code> switch to
> specify a user to use for the installation of the service. </p> 
> <p> -<strong>NOTE:</strong> On Windows Vista or any later operating
> system with User -Account Control (UAC) enabled you will be asked
> for additional privileges -when 'Tomcat<version-major/>.exe' is
> launched by the script.<br/> +<strong>NOTE:</strong> If User
> Account Control (UAC) is enabled you will be +asked for additional
> privileges when 'Tomcat<version-major/>.exe' is launched by +the
> script.<br/> If you want to pass additional options to service
> installer as <code>PR_*</code> environment variables, you have to
> either configure them globally in OS, or launch the program that
> sets them with elevated privileges @@ -367,6 +367,14 @@ service, as
> displayed in Windows services.</p> <source>Install the service
> named 'MyService' C:\> service.bat install MyService</source>
> 
> +<p>When installing the service with a non-default name, 
> +tomcat<version-major/>.exe and tomcat<version-major/>w.exe will be
> renamed to +match the chosen service name. To prevent this, use the
> <code>--no-rename</code> +option.</p> + +<source>Install the
> service named 'MyService' without renaming +C:\> service.bat
> install MyService --no-rename</source> + <p> If using
> tomcat<version-major/>.exe, you need to use the <b>//IS//</b>
> parameter.</p>
> 
> 
> 
> ---------------------------------------------------------------------
>
> 
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl1Ndf8ACgkQHPApP6U8
pFjA+BAAooRuMfdmMiuQdScqlLVnT428drU6Z0X9IPqDYh6v4mjsYygLusYmn7wt
XH1zoIV3q3JsVFbH6KaEIL3L4nOLfYQwoywcpHVYUxntmG/YjDCyFVzZOdwqzwJy
jk52PdQFRFknaDJRU8uVH9mLJTrpljxOxC8Y48fIQ7JZ83B+jMMu+ZbO2qd31IZR
KGaDtGLlhy+G8TvH7uWaf0ZZ0YXLnvAjU+mAbJ0qimuTJ94DX3Jn/D87p/ZcoQJL
hG24nm2T9kF41LdmX2tULTkZjgeQIHwDhfSfDhMlgnQ27gsdDEk4cV6kzFdaWdIU
+2XfR+bkJxgwfOw59XBAbyYosiCRI+lhNU/q3563GV5jMDdse5VUzXV1JW7Bi+mS
0QxEPyLXE85Ld5eXSA6IDQg1reUuT6LkU+SbjpEGgTe7uMYhRXvJPzxZqMJWuVHK
U5uPJGiwaxE5MCoNY20Eja9wJOYZlGk7c+K4Ph3ybLjo9BGJSEwKX6MNDeOQKoPD
+X9y8re/tigE+vkp80D5V1cilbIciL3Ux+64QTwL4v385JGHsz4MX1zCtYj4EQwq
CQrIcqT3GPAFegmu3b6pIe1ua/IXHulAZpOetbcT4f+jwaSLIh/qq4UfaBqrZJrP
kHg+JMLmri64Hm0EmLBYFlSqjyxoPNXMvCj+tEYzyc1gCl/bZm4=
=PkEs
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to