X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Finit%2Fossec-client.sh;h=265d03f2d84ba10b4671f3d03a6b0eb43205e73f;hb=3f728675941dc69d4e544d3a880a56240a6e394a;hp=f1650f08182eb32863edcb4e3f1788f33b673810;hpb=789cbc8e52da68eba3517b920ef22e000cf3c9fd;p=ossec-hids.git diff --git a/src/init/ossec-client.sh b/src/init/ossec-client.sh index f1650f0..265d03f 100755 --- a/src/init/ossec-client.sh +++ b/src/init/ossec-client.sh @@ -3,32 +3,28 @@ # or stopping ossec-hids # Author: Daniel B. Cid - LOCAL=`dirname $0`; cd ${LOCAL} PWD=`pwd` DIR=`dirname $PWD`; -### Do not modify bellow here ### + +### Do not modify below here ### NAME="OSSEC HIDS" -VERSION="v2.8.3" -AUTHOR="Trend Micro Inc." +VERSION="v3.3.0" DAEMONS="ossec-logcollector ossec-syscheckd ossec-agentd ossec-execd" +[ -f /etc/ossec-init.conf ] && . /etc/ossec-init.conf ## Locking for the start/stop LOCK="${DIR}/var/start-script-lock" LOCK_PID="${LOCK}/pid" - # This number should be more than enough (even if it is # started multiple times together). It will try for up # to 10 attempts (or 10 seconds) to execute. MAX_ITERATION="10" - - -# Check pid checkpid() { for i in ${DAEMONS}; do @@ -37,24 +33,21 @@ checkpid() if [ ! $? = 0 ]; then echo "Deleting PID file '${DIR}/var/run/${i}-${j}.pid' not used..." rm ${DIR}/var/run/${i}-${j}.pid - fi - done - done + fi + done + done } - - -# Lock function lock() { i=0; - + # Providing a lock. while [ 1 ]; do mkdir ${LOCK} > /dev/null 2>&1 MSL=$? if [ "${MSL}" = "0" ]; then - # Lock aquired (setting the pid) + # Lock acquired (setting the pid) echo "$$" > ${LOCK_PID} return; fi @@ -68,7 +61,7 @@ lock() if [ ! $? = 0 ]; then # Pid is not present. i=`expr $i + 1`; - fi + fi # We tried 10 times to acquire the lock. if [ "$i" = "${MAX_ITERATION}" ]; then @@ -81,24 +74,18 @@ lock() done } - -# Unlock function unlock() { rm -rf ${LOCK} } - -# Help message help() { # Help message - echo "Usage: $0 {start|stop|restart|status}"; + echo "Usage: $0 {start|stop|reload|restart|status}"; exit 1; } - -# Status function status() { RETVAL=0 @@ -110,20 +97,20 @@ status() else echo "${i} is running..." fi - done + done exit $RETVAL } testconfig() { - # We first loop to check the config. + # We first loop to check the config. for i in ${SDAEMONS}; do ${DIR}/bin/${i} -t; if [ $? != 0 ]; then echo "${i}: Configuration error. Exiting" unlock; exit 1; - fi + fi done } @@ -131,29 +118,27 @@ testconfig() start() { SDAEMONS="ossec-execd ossec-agentd ossec-logcollector ossec-syscheckd" - - echo "Starting $NAME $VERSION (by $AUTHOR)..." + + echo "Starting $NAME $VERSION..." lock; checkpid; - # We actually start them now. for i in ${SDAEMONS}; do pstatus ${i}; if [ $? = 0 ]; then ${DIR}/bin/${i}; if [ $? != 0 ]; then - echo "${i} did not start"; + echo "${i} did not start"; unlock; exit 1; - fi + fi - echo "Started ${i}..." + echo "Started ${i}..." else - echo "${i} already running..." - fi - - done + echo "${i} already running..." + fi + done # After we start we give 2 seconds for the daemons # to internally create their PID files. @@ -162,16 +147,15 @@ start() echo "Completed." } -# Process status pstatus() { pfile=$1; - + # pfile must be set if [ "X${pfile}" = "X" ]; then return 0; fi - + ls ${DIR}/var/run/${pfile}*.pid > /dev/null 2>&1 if [ $? = 0 ]; then for j in `cat ${DIR}/var/run/${pfile}*.pid 2>/dev/null`; do @@ -181,19 +165,17 @@ pstatus() rm -f ${DIR}/var/run/${pfile}-$j.pid continue; fi - + kill -0 $j > /dev/null 2>&1 if [ $? = 0 ]; then return 1; - fi - done + fi + done fi - - return 0; -} + return 0; +} -# Stop all stopa() { lock; @@ -202,49 +184,47 @@ stopa() pstatus ${i}; if [ $? = 1 ]; then echo "Killing ${i} .. "; - + kill `cat ${DIR}/var/run/${i}*.pid`; else - echo "${i} not running .."; + echo "${i} not running .."; fi - + rm -f ${DIR}/var/run/${i}*.pid - - done - + done + unlock; echo "$NAME $VERSION Stopped" } - ### MAIN HERE ### case "$1" in - start) +start) testconfig - start - ;; - stop) - stopa - ;; - restart) + start + ;; +stop) + stopa + ;; +restart) testconfig - stopa - sleep 1; - start - ;; - reload) - DAEMONS="ossec-logcollector ossec-syscheckd ossec-agentd" - stopa - start - ;; - status) + stopa + sleep 1; + start + ;; +reload) + DAEMONS="ossec-logcollector ossec-syscheckd ossec-agentd" + stopa + start + ;; +status) status - ;; - help) + ;; +help) help ;; - *) +*) help esac