github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/packager/templates/el/el6/broker.init (about) 1 #!/bin/bash 2 # 3 # Init script for {{cpkg_name}}-broker 4 # 5 ### BEGIN INIT INFO 6 # Provides: {{cpkg_name}}-broker 7 # Required-Start: $remote_fs $syslog 8 # Required-Stop: $remote_fs $syslog 9 # chkconfig: {{cpkg_broker_start_runlevels}} {{cpkg_broker_start_order}} {{cpkg_broker_start_order}} 10 # Short-Description: Choria.IO Orchestration System Network Broker 11 # Description: NATS based middleware, Federation Broker and Protocol Adapter for Choria.IO 12 ### END INIT INFO 13 14 # source function library 15 . /etc/rc.d/init.d/functions 16 17 prog="{{cpkg_name}}-broker" 18 user="root" 19 exec="{{cpkg_bindir}}/{{cpkg_name}}" 20 pidfile="/var/run/${prog}.pid" 21 lockfile="/var/lock/subsys/${prog}" 22 logfile="/var/log/${prog}" 23 conffile="{{cpkg_etcdir}}/broker.conf" 24 25 # set the open file limit to allow over 1024 connections 26 ulimit -n 51200 27 28 # pull in sysconfig settings 29 [ -e /etc/sysconfig/${prog} ] && . /etc/sysconfig/${prog} 30 31 args="broker run --config=${conffile} --pid=${pidfile} ${EXTRA_OPTS}" 32 33 start() { 34 [ -x $exec ] || exit 5 35 [ -f $conffile ] || exit 6 36 [ -d $confdir ] || exit 6 37 38 umask 077 39 40 touch $logfile $pidfile 41 42 echo -n $"Starting ${prog}: " 43 44 daemon \ 45 --pidfile=${pidfile} \ 46 " { nohup ${exec} ${args} > ${logfile} 2>&1 & }" 47 48 RETVAL=$? 49 echo 50 51 [ $RETVAL -eq 0 ] && touch $lockfile 52 53 return $RETVAL 54 } 55 56 stop() { 57 echo -n $"Shutting down $prog: " 58 59 if rh_status_q ; then 60 pid=$(cat "$pidfile") 61 kill -TERM $pid 62 63 for i in 1 2 3 4 5 ; do 64 rh_status_q || break 65 sleep 1 66 done 67 68 if rh_status_q ; then 69 echo "Timeout reached. Killing $prog (pid $pid) with SIGKILL." 70 kill -KILL $pid 71 echo "$prog killed with SIGKILL." 72 else 73 echo "$prog stopped." 74 fi 75 fi 76 } 77 78 restart() { 79 stop 80 sleep 1 81 start 82 } 83 84 force_reload() { 85 restart 86 } 87 88 rh_status() { 89 status -p "$pidfile" -l $prog $exec 90 } 91 92 rh_status_q() { 93 rh_status >/dev/null 2>&1 94 } 95 96 case "$1" in 97 start) 98 rh_status_q && exit 0 99 $1 100 ;; 101 stop) 102 rh_status_q || exit 0 103 $1 104 ;; 105 restart) 106 $1 107 ;; 108 force-reload) 109 force_reload 110 ;; 111 status) 112 rh_status 113 ;; 114 condrestart|try-restart) 115 rh_status_q || exit 0 116 restart 117 ;; 118 *) 119 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|force-reload}" 120 exit 2 121 esac 122 123 exit $?