What is the best practice to start Sametime in Linux / RHEL 7.8 automatically on boot up?

We have been manually using ststart.sh to start Domino and Community server. After that we manually run startup.sh to start the proxy. I understand rc.local could be used but in that file it says "It is highly advisable to create own systemd services or udev rules to run scripts during boot instead of using this file."

Officially for the Sametime Community server - it is to use the ./ststart script - it has a couple of modes available to it :

'./ststart' - (with no parameters) will start Domino and along with it the Community server (staddin task) - this will run in the foreground. It will remain running if you lose your SSH session.

'./ststart background' - will do the same thing but will be in the background - you won't see the Domino console in the SSH session.

you can also use the "stop" "restart" and "status" parameters to get additional details or , well, stop or restart the server as needed.

For the Sametime Proxy server - there are instructions on creating a service script for it available here-

https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0075801

While not officially supported by the Sametime team, you are able to use the Domino service scripts available here - https://www.nashcom.de/nshweb/pages/startscript.htm - you need to make one edit to the rc_domino_script after installing the script per the instructions provided with the utility

find this line in it -

LD_LIBRARY_PATH=$Notes_ExecDirectory:$LD_LIBRARY_PATH

and append this

:$Notes_ExecDirectory/sticc

so that it looks like

LD_LIBRARY_PATH=$Notes_ExecDirectory:$LD_LIBRARY_PATH:$Notes_ExecDirectory/sticc

and save/exit and then the script will successfully start the Sametime server. WIthout this edit - the Domino server will start, but the staddin task will not launch.

We use the Nashed script, too (Thanks, Daniel!).

And with the current version of the script and Sametime V11.0 FP 1 there was no need to add $Notes_ExecDirectory/sticc to LD_LIBRARY_PATH anymore. At least our community server starts fine without me making this addition.

I think maybe I should phrase it as :

When using Daniels script, if you notice that the staddin task is not loading - try adding '$Notes_ExecDirectory/sticc' to the LD_LIBRARY_PATH.

Its definitely been my experience that, at least with the default install, its been required to add that. This is with version 3.3.1 of his script.

Maybe, I was just lucky. :-)

What's about the second part: How to start the Sametime proxy server automatically (and shut it down)?

Daniel's script let's you execute script before and after most events (startup, shutdown, kill,...), but the scripts are executed as user "notes". For starting and stopping the proxy server, root is needed (as far as I understand).

Any recommendation or even best practice?

For the Sametime Proxy - 'root' is the default, but you can modify that by chowning the directories to your preffered user.

11.5 will ship with a utility to create a service, in the meantime I documented these steps to create your own -

https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0075801

Hello Anthony,

Thanks for this tip. I configured accordingly and it is working as expected...:-)

Thanks & Regards,

Prashanth

Thank you. I created the tomcat service using the KB and seems to work as expected. In our case the only change I made was to use the path of /opt/sametimeproxy/OpenJDK on an 11.01 FP1 installation.
I would like to try the nashed script but we don't use the default path for data. I wonder if I can just swap out our path in the install script. Other than that our paths are default. I am working on trying and testing that. I will repost as I hopefully get it working.
As far as bootup order at startup, do I have to worry about start order or priority on boot up? I was just wondering if maybe proxy fires up as a service before Domino and staddin start if it would be a problem. When doing manually I normally did Community and waited for everything to be up before starting proxy.

Hello Dave,

I have updated /opt/hcl/sametimeproxy/openjdk from the default path /opt/hcl/sametimeproxy/jdk8u222-b10-jre in the proxy script.

The script works for stop the proxy service but unable to help for starting it. Please do help. Thank you in advance.

[root@hklsmt ~]# grep JAVA_HOME /etc/systemd/system/tomcat.service
Environment="JAVA_HOME=/opt/hcl/sametimeproxy/openjdk"

[root@im ~]# ls -l /opt/hcl/sametimeproxy/openjdk/
total 212
-rwxrwxr-x 1 tomcat tomcat 1522 Jul 1 12:34 ASSEMBLY_EXCEPTION
drwxrwxr-x 2 tomcat tomcat 4096 Jul 1 12:34 bin
drwxrwxr-x 9 tomcat tomcat 4096 Jul 1 12:34 lib
-rwxrwxr-x 1 tomcat tomcat 19650 Jul 1 12:34 LICENSE
drwxrwxr-x 4 tomcat tomcat 4096 Jul 1 12:34 man
-rwxrwxr-x 1 tomcat tomcat 16151 Jul 1 12:34 openj9-notices.html
-rwxrwxr-x 1 tomcat tomcat 6384 Jul 1 12:34 openj9-openjdk-notices
-rwxrwxr-x 1 tomcat tomcat 84 Jul 1 12:34 release
-rwxrwxr-x 1 tomcat tomcat 148650 Jul 1 12:34 THIRD_PARTY_README

[root@hklsmt ~]#
[root@hklsmt ~]# netstat -tulpn |grep 443
[root@hklsmt ~]#
[root@hklsmt ~]# systemctl start tomcat
[root@hklsmt ~]#
[root@hklsmt ~]# netstat -tulpn |grep 443
[root@hklsmt ~]#
[root@hklsmt ~]# /opt/hcl/sametimeproxy/bin/startup.sh
Using CATALINA_BASE: /opt/hcl/sametimeproxy
Using CATALINA_HOME: /opt/hcl/sametimeproxy
Using CATALINA_TMPDIR: /opt/hcl/sametimeproxy/temp
Using JRE_HOME: /opt/hcl/sametimeproxy/openjdk
Using CLASSPATH: /opt/hcl/sametimeproxy/bin/bootstrap.jar:/opt/hcl/sametimeproxy/bin/tomcat-juli.jar
Tomcat started.
[root@hklsmt ~]# netstat -tulpn |grep 443
tcp6 0 0 :::443 :::* LISTEN 605973/java
[root@hklsmt ~]# systemctl stop tomcat
[root@hklsmt ~]# netstat -tulpn |grep 443
[root@hklsmt ~]#

@Elango Gopal

Hello Elango, sorry I do not have a good answer right now. I am having a few issues with my deployment right now and I had to remove the service. I will hopefully remember to repost with my success later on. Good luck and keep us posted on your resolution.

What's the output of

systemctl status tomcat

after a call to

systemctl start tomcat

What do the newest logs in /opt/hcl/sametimeproxy/logs tell?

Hello @Dave B @Thomas Bahn , Thanks for your response.

This is my command and logs output. Kindly review and let me know if anything changes to be made on my environment. I have given chmod -R 777 /opt/hcl/sametimeproxy directory, but still getting permission error in the proxy logs. This tomcat service is able to stop and unable to start it.

[root@im logs]# systemctl start tomcat
[root@im logs]#

[root@im logs]# netstat -tulpn |grep 443
[root@im logs]#

[root@im logs]# systemctl status tomcat
● tomcat.service - ST Proxy Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2020-07-17 13:10:57 IST; 12s ago
Process: 18018 ExecStop=/opt/hcl/sametimeproxy/bin/shutdown.sh (code=exited, status=0/SUCCESS)
Process: 18091 ExecStart=/opt/hcl/sametimeproxy/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 18101 (java)
Tasks: 55 (limit: 204296)
Memory: 222.4M
CGroup: /system.slice/tomcat.service
└─18101 /opt/hcl/sametimeproxy/openjdk/bin/java -Djava.util.logging.config.file=/opt/hcl/sametimeproxy/conf/logging.properties -Djava.util.logging.manager=o>

Jul 17 13:10:57 st.domain.com systemd[1]: Starting ST Proxy Tomcat 9 servlet container...
Jul 17 13:10:57 st.domain.com startup.sh[18091]: Existing PID file found during start.
Jul 17 13:10:57 st.domain.com startup.sh[18091]: Removing/clearing stale PID file.
Jul 17 13:10:57 st.domain.com startup.sh[18091]: Tomcat started.
Jul 17 13:10:57 st.domain.com systemd[1]: Started ST Proxy Tomcat 9 servlet container.
[root@im logs]#

[root@im logs]# netstat -tulpn |grep 443
[root@im logs]#

[root@im logs]# systemctl stop tomcat
[root@im logs]#

[root@im logs]# systemctl status tomcat
● tomcat.service - ST Proxy Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2020-07-17 13:11:36 IST; 4s ago
Process: 18177 ExecStop=/opt/hcl/sametimeproxy/bin/shutdown.sh (code=exited, status=0/SUCCESS)
Process: 18091 ExecStart=/opt/hcl/sametimeproxy/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 18101 (code=exited, status=143)

Jul 17 13:10:57 st.domain.com systemd[1]: Started ST Proxy Tomcat 9 servlet container.
Jul 17 13:11:31 st.domain.com systemd[1]: Stopping ST Proxy Tomcat 9 servlet container...
Jul 17 13:11:36 st.domain.com shutdown.sh[18177]: Tomcat did not stop in time.
Jul 17 13:11:36 st.domain.com shutdown.sh[18177]: PID file was not removed.
Jul 17 13:11:36 st.domain.com shutdown.sh[18177]: To aid diagnostics a thread dump has been written to standard out.
Jul 17 13:11:36 st.domain.com java[18101]: IBM Java[18101]: JVMDUMP039I Processing dump event "user", detail "" at 2020/07/17 13:11:36 - please wait.
Jul 17 13:11:36 st.domain.com java[18101]: IBM Java[18101]: JVMDUMP032I JVM requested Java dump using '/tmp/javacore.20200717.131136.18101.0001.txt' in response to an ev>
Jul 17 13:11:36 st.domain.com systemd[1]: tomcat.service: Main process exited, code=exited, status=143/n/a
Jul 17 13:11:36 st.domain.com systemd[1]: tomcat.service: Failed with result 'exit-code'.
Jul 17 13:11:36 st.domain.com systemd[1]: Stopped ST Proxy Tomcat 9 servlet container.
[root@im logs]#

cat catalina.2020-07-17.log

17-Jul-2020 13:01:37.183 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.30
17-Jul-2020 13:01:37.185 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 7 2019 16:42:04 UTC
17-Jul-2020 13:01:37.185 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.30.0
17-Jul-2020 13:01:37.185 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
17-Jul-2020 13:01:37.185 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.18.0-193.6.3.el8_2.x86_64
17-Jul-2020 13:01:37.185 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
17-Jul-2020 13:01:37.186 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/hcl/sametimeproxy/openjdk
17-Jul-2020 13:01:37.186 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_242-b08
17-Jul-2020 13:01:37.186 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse OpenJ9
17-Jul-2020 13:01:37.186 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /opt/hcl/sametimeproxy
17-Jul-2020 13:01:37.186 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/hcl/sametimeproxy
17-Jul-2020 13:01:37.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xoptionsfile=/opt/hcl/sametimeproxy/openjdk/lib/amd64/compressedrefs/options.default
17-Jul-2020 13:01:37.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xlockword:mode=default,noLockword=java/lang/String,noLockword=java/util/MapEntry,noLockword=java/util/HashMap$Entry,noLockword=org/apache/harmony/luni/util/ModifiedMap$Entry,noLockword=java/util/Hashtable$Entry,noLockword=java/lang/invoke/MethodType,noLockword=java/lang/invoke/MethodHandle,noLockword=java/lang/invoke/CollectHandle,noLockword=java/lang/invoke/ConstructorHandle,noLockword=java/lang/invoke/ConvertHandle,noLockword=java/lang/invoke/ArgumentConversionHandle,noLockword=java/lang/invoke/AsTypeHandle,noLockword=java/lang/invoke/ExplicitCastHandle,noLockword=java/lang/invoke/FilterReturnHandle,noLockword=java/lang/invoke/DirectHandle,noLockword=java/lang/invoke/ReceiverBoundHandle,noLockword=java/lang/invoke/DynamicInvokerHandle,noLockword=java/lang/invoke/FieldHandle,noLockword=java/lang/invoke/FieldGetterHandle,noLockword=java/lang/invoke/FieldSetterHandle,noLockword=java/lang/invoke/StaticFieldGetterHandle,noLockword=java/lang/invoke/StaticFieldSetterHandle,noLockword=java/lang/invoke/IndirectHandle,noLockword=java/lang/invoke/InterfaceHandle,noLockword=java/lang/invoke/VirtualHandle,noLockword=java/lang/invoke/PrimitiveHandle,noLockword=java/lang/invoke/InvokeExactHandle,noLockword=java/lang/invoke/InvokeGenericHandle,noLockword=java/lang/invoke/VarargsCollectorHandle,noLockword=java/lang/invoke/ThunkTuple
17-Jul-2020 13:01:37.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xjcl:jclse29
17-Jul-2020 13:01:37.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.ibm.oti.vm.bootstrap.library.path=/opt/hcl/sametimeproxy/openjdk/lib/amd64/compressedrefs:/opt/hcl/sametimeproxy/openjdk/lib/amd64
17-Jul-2020 13:01:37.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.boot.library.path=/opt/hcl/sametimeproxy/openjdk/lib/amd64/compressedrefs:/opt/hcl/sametimeproxy/openjdk/lib/amd64
17-Jul-2020 13:01:37.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.library.path=/opt/hcl/sametimeproxy/openjdk/lib/amd64/compressedrefs:/opt/hcl/sametimeproxy/openjdk/lib/amd64:/usr/lib64:/usr/lib
17-Jul-2020 13:01:37.187 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.home=/opt/hcl/sametimeproxy/openjdk
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.ext.dirs=/opt/hcl/sametimeproxy/openjdk/lib/ext
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Duser.dir=/
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.class.path=.
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/opt/hcl/sametimeproxy/conf/logging.properties
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms2048m
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx8192m
17-Jul-2020 13:01:37.188 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms512M
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024M
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -server
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+UseParallelGC
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.class.path=/opt/hcl/sametimeproxy/bin/bootstrap.jar:/opt/hcl/sametimeproxy/bin/tomcat-juli.jar
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/hcl/sametimeproxy
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/hcl/sametimeproxy
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/hcl/sametimeproxy/temp
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.java.command=org.apache.catalina.startup.Bootstrap start
17-Jul-2020 13:01:37.190 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.java.launcher=SUN_STANDARD
17-Jul-2020 13:01:37.190 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.java.launcher.pid=17563
17-Jul-2020 13:01:37.190 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/opt/hcl/sametimeproxy/openjdk/lib/amd64/compressedrefs:/opt/hcl/sametimeproxy/openjdk/lib/amd64:/usr/lib64:/usr/lib]
17-Jul-2020 13:01:37.368 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
17-Jul-2020 13:01:37.388 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-jsse-nio-443"]
17-Jul-2020 13:01:37.389 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-443]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:533)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1057)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:584)
at org.apache.catalina.startup.Catalina.load(Catalina.java:607)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:303)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
Caused by: java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:220)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:229)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:212)
at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1141)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1154)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:74)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
... 13 more
17-Jul-2020 13:01:37.390 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [314] milliseconds
17-Jul-2020 13:01:37.404 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
17-Jul-2020 13:01:37.404 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.30]
17-Jul-2020 13:01:37.418 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/hcl/sametimeproxy/webapps/stwebclient.war]
17-Jul-2020 13:01:39.116 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
17-Jul-2020 13:01:39.141 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/hcl/sametimeproxy/webapps/stwebclient.war] has finished in [1,722] ms
17-Jul-2020 13:01:39.141 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/hcl/sametimeproxy/webapps/ROOT.war]
17-Jul-2020 13:01:40.522 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
17-Jul-2020 13:01:40.524 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/hcl/sametimeproxy/webapps/ROOT.war] has finished in [1,383] ms
17-Jul-2020 13:01:40.525 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/hcl/sametimeproxy/webapps/chat.war]
17-Jul-2020 13:01:41.873 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
17-Jul-2020 13:01:41.875 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/hcl/sametimeproxy/webapps/chat.war] has finished in [1,350] ms
17-Jul-2020 13:01:41.876 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/hcl/sametimeproxy/webapps/stwebapi.war]
17-Jul-2020 13:01:43.262 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
17-Jul-2020 13:01:43.539 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/hcl/sametimeproxy/webapps/stwebapi.war] has finished in [1,662] ms
17-Jul-2020 13:01:43.539 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/hcl/sametimeproxy/webapps/stbaseapi.war]
17-Jul-2020 13:01:44.929 WARNING [main] org.apache.catalina.startup.ContextConfig.validateSecurityRoles Security role name [AllUsers] used in an <auth-constraint> without being defined in a <security-role>
17-Jul-2020 13:01:44.947 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
17-Jul-2020 13:01:44.950 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/hcl/sametimeproxy/webapps/stbaseapi.war] has finished in [1,411] ms
17-Jul-2020 13:01:44.953 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
17-Jul-2020 13:01:44.958 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [7,567] milliseconds
[root@im logs]#

cat localhost.2020-07-17.log

17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/hcl/sametimeproxy
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/hcl/sametimeproxy
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/hcl/sametimeproxy/temp
17-Jul-2020 13:01:37.189 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.java.command=org.apache.catalina.startup.Bootstrap start
17-Jul-2020 13:01:37.190 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.java.launcher=SUN_STANDARD
17-Jul-2020 13:01:37.190 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dsun.java.launcher.pid=17563
17-Jul-2020 13:01:37.190 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/opt/hcl/sametimeproxy/openjdk/lib/amd64/compressedrefs:/opt/hcl/sametimeproxy/openjdk/lib/amd64:/usr/lib64:/usr/lib]
17-Jul-2020 13:01:37.368 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
17-Jul-2020 13:01:37.388 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-jsse-nio-443"]
17-Jul-2020 13:01:37.389 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-443]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:533)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1057)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:584)
at org.apache.catalina.startup.Catalina.load(Catalina.java:607)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:303)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
Caused by: java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:220)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:229)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:212)
at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1141)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1154)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:74)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
... 13 more
17-Jul-2020 13:01:37.390 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [314] milliseconds
17-Jul-2020 13:01:37.404 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
17-Jul-2020 13:01:37.404 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.30]
17-Jul-2020 13:01:37.418 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/hcl/sametimeproxy/webapps/stwebclient.war]
17-Jul-2020 13:01:39.116 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

There is the explanation you looked for - directly in the logs.

The user, who owns the tomcat process isn't allowed to listen on the (privileged) port 443.

You could try to change the port back to 8443 in the config. Does the tomcat service start now? I assume, it will do.

If so, you have to decide:

  • port 443 and root,
  • port 443 and allow tomcat user to open it (don't know how, nor if this is possible) or
  • use a non-privileged port > 1024, possibly with a reverse proxy (like NGINX) in front of the Sametime proxy server.

Hello Thomas, I tried this, it is working fine for ST proxy 11.0 FP1 on CentOS 8.1

Sametime proxy auto startup | CentOS 8.1 | Sametime 11.0 FP1 | ST proxy port 443
=======================================================

chown -R root:root /opt/hcl/sametimeproxy/

vim /etc/systemd/system/tomcat.service
[Unit]
Description=ST Proxy Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=root
Group=root
Environment=“JAVA_HOME=/opt/hcl/sametimeproxy/openjdk”
Environment=“CATALINA_BASE=/opt/hcl/sametimeproxy”
Environment=“CATALINA_HOME=/opt/hcl/sametimeproxy”
Environment=“CATALINA_PID=/opt/hcl/sametimeproxy/temp/tomcat.pid”
Environment=“CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC”
ExecStart=/opt/hcl/sametimeproxy/bin/startup.sh
ExecStop=/opt/hcl/sametimeproxy/bin/shutdown.sh
[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl enable tomcat
systemctl start tomcat

You can use an alternate data directory with Daniel's script - just modify the DOMINO_DATA_PATH as appropriate, its in the /etc/sysconfig/rc_domino_config file.

Startup order doesn't truly matter - the Sametime Proxy has retry logic (1 minute intervals) in it such that it will connect to Community should it not be available on startup, or reconnect should you have to restart Community but not Proxy.

Hi, Dave,

in latest Daniel Nashed Script rc_domino , there were changes and updates, so it supports Sametime Also.

https://blog.nashcom.de/nashcomblog.nsf/dx/domino-start-script-sametime-11-support.htm?opendocument&comments