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