20130801 openfire init - plembo/onemoretech GitHub Wiki

title: openfire init link: https://onemoretech.wordpress.com/2013/08/01/openfire-init/ author: phil2nc description: post_id: 6168 created: 2013/08/01 00:15:52 created_gmt: 2013/08/01 04:15:52 comment_status: closed post_name: openfire-init status: publish post_type: post

openfire init

A working init script for Openfire, tested on Fedora 19. One of the few things that broke in my recent upgrade to Fedora 19 was the init process for my test Openfire server. With a little tweaking I was able to get the openfired script found in $OPENFIRE_HOME/bin/extra to do the trick. [code lang="bash"]#!/bin/bash # openfired stops and starts the openfire XMPP service # # chkconfig: 2345 99 1 # description: Used to start and stop the openfire XMPP server # # Script used to start openfire as daemon # The script has currently been tested on Redhat Fedora Core 3, # but should theoretically work on most UNIX like systems # # before running this script make sure $OPENFIRE_HOME/bin/openfire is # executable by the user you want to run openfire as # (chmod +x $OPENFIRE_HOME/bin/openfire) # # This script should be copied into /etc/init.d and linked into # your default runlevel directory. # You can find your default runlevel directory by typing: # grep default /etc/inittab # # Link to the directory like follows # cd /etc/rc.d # ln -s ../init.d/openfired $90openfired # # Modified 2013/07/31 by P Lembo for Fedora 19 # Set this to tell this script where openfire lives # If this is not set the script will look for /opt/openfire, then /usr/local/openfire export OPENFIRE_HOME=/opt/openfire # If there is a different user you would like to run this script as, # change the following line export OPENFIRE_USER=jive # ----------------------------------------------------------------- # If a openfire home variable has not been specified, try to determine it if [ ! $OPENFIRE_HOME ]; then if [ -d "/opt/openfire" ]; then OPENFIRE_HOME="/opt/openfire" elif [ -d "/usr/local/openfire" ]; then OPENFIRE_HOME="/usr/local/openfire" else echo "Could not find Openfire installation under /opt or /usr/local" echo "Please specify the Openfire installation location in environment variable OPENFIRE_HOME" exit 1 fi fi execCommand() { OLD_PWD=pwd cd $OPENFIRE_HOME/bin # Drop ".sh" extension CMD="./openfire $1" # Fix syntax of command to execute as app user su $OPENFIRE_USER -c "$CMD" & sleep 1 # allows prompt to return cd $OLD_PWD } start() { execCommand "start" } stop() { execCommand "stop" } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 10 # since stop is backgrounded start ;; status) retval=$(pgrep -u $OPENFIRE_USER -f $OPENFIRE_HOME/bin/openfire > /dev/null ; echo $?) if [ "$retval" = "0" ] ; then echo "openfire is running" exit 0 else echo "openfire is not running" exit 0 fi ;; *) echo "Usage $0 {start|stop|restart|status}" exit 1 esac exit 0 [/code] Besides tightening up the spacing the only changes I made to the original openfired script were to change "openfire.sh" to "openfire" so that it actually matched reality, and fixed the syntax in the line that runs that script as application user. To focus on those changes: [code lang="bash" firstline="50" highlight="51,54"] + # Drop ".sh" extension - CMD="./openfire.sh $1" + CMD="./openfire $1" + # Fix syntax of command to execute as app user - su -c "$CMD" $OPENFIRE_USER & + su $OPENFIRE_USER -c "$CMD" & [/code] The lines highlighted were removed, those not highlighted were added.

Copyright 2004-2019 Phil Lembo

⚠️ **GitHub.com Fallback** ⚠️