After provisioning Confluence Data Center, and installing Synchrony as a service I have noticed that it does not start when synchrony service has not been stopped explicitly. This happens eg. upon synchrony server reboot.
Cause:
Orphaned synchrony.pid file has not been cleaned and it is preventing service start upon reboot.
Solution:
To give the robustness to synchrony service, I have added couple of lines, which cleans up orphaned pid file when it is detected that synchrony has not been running.
#!/bin/bash
## CUSTOM VARIABLES - BEGIN
PIDFILE='/opt/atlassian/synchrony/synchrony.pid'
DAEMON='synchro+'
## CUSTOM VARIABLES - END
# Synchrony Linux service controller script
cd "/opt/atlassian/synchrony"
case "$1" in
start)
## CUSTOM PART - BEGIN
## Remove orphaned PID file, upon reboot, if synchrony service not already running
if [ $(ps -ef | grep $DAEMON | grep -v grep | wc -l) -ne 1 ] \
&& [ -f $PIDFILE ]
then
rm -f $PIDFILE
fi
## CUSTOM PART - END
/sbin/runuser -m synchrony -c "./start-synchrony.sh"
;;
stop)
/sbin/runuser -m synchrony -c "./stop-synchrony.sh"
;;
restart)
/sbin/runuser -m synchrony -c "./stop-synchrony.sh"
/sbin/runuser -m synchrony -c "./start-synchrony.sh"
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac