123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #!/bin/sh
- SETT_DAEMON_MODE=1
- SETT_DAEMON_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
- SETT_DAEMON_FOLDER_LOGS="$SETT_DAEMON_PATH/logs"
- SETT_DAEMON_LOGS_WORK_FILE="$SETT_DAEMON_FOLDER_LOGS/all.log"
- SETT_DAEMON_PID_FILE="$SETT_DAEMON_PATH/pid"
- # Include funcs
- . "$SETT_DAEMON_PATH/funcs.sh"
- check_util "mkdir"
- check_util "chmod"
- check_util "touch"
- check_util "cat"
- check_util "kill"
- check_util "rm"
- get_util "mkdir" UTIL_MKDIR
- get_util "chmod" UTIL_CHMOD
- get_util "touch" UTIL_TOUCH
- get_util "cat" UTIL_CAT
- get_util "kill" UTIL_KILL
- get_util "rm" UTIL_RM
- check() {
- if [ ! -d "$SETT_DAEMON_FOLDER_LOGS" ]; then
- $UTIL_MKDIR "$SETT_DAEMON_FOLDER_LOGS"
- $UTIL_CHMOD 0755 "$SETT_DAEMON_FOLDER_LOGS"
- fi
- }
- log_str() {
- process=$1
- shift
- log_date=$(date '+%F %T');
- log_string="[$log_date] [$$]: $*"
- echo "$log_string" >> "$SETT_DAEMON_LOGS_WORK_FILE"
- }
- loop() {
- # Include body
- . "$SETT_DAEMON_PATH/loop.sh"
- }
- start() {
- check
- if [ -f "$SETT_DAEMON_PID_FILE" ]; then
- _pid=`$UTIL_CAT $SETT_DAEMON_PID_FILE`
- is_pid_runned "$_pid" rbool
- if [ "$rbool" = "1" ]; then
- log_str "0" "Daemon already running with pid = $_pid"
- echo "Daemon already running with pid = $_pid"
- exit 0
- fi
- fi
- cd /
- if [ "$SETT_DAEMON_MODE" = 1 ]; then
- exec >> $SETT_DAEMON_LOGS_WORK_FILE
- exec 2>> $SETT_DAEMON_LOGS_WORK_FILE
- exec < /dev/null
- (
- while [ 1 ]
- do
- loop
- sleep 1
- done
- exit 0
- )&
- echo $! > $SETT_DAEMON_PID_FILE
- else
- while [ 1 ]
- do
- loop
- sleep 1
- done
- exit 0
- fi
- }
- stop() {
- if [ -f "$SETT_DAEMON_PID_FILE" ]; then
- _pid=`$UTIL_CAT $SETT_DAEMON_PID_FILE`
- `$UTIL_KILL $_pid`
- rt="$?"
- if [ "$rt" = "0" ]; then
- log_str "0" "Daemon stoped"
- echo "Daemon stoped"
- `$UTIL_RM $SETT_DAEMON_PID_FILE`
- else
- log_str "0" "Error stop daemon"
- echo "Error stop daemon"
- fi
- else
- log_str "0" "Daemon is not runned"
- echo "Daemon is not runned"
- fi
- }
- status() {
- if [ -f "$SETT_DAEMON_PID_FILE" ]; then
- _pid=`$UTIL_CAT $SETT_DAEMON_PID_FILE`
- is_pid_runned "$_pid" rbool
- if [ "$rbool" = "1" ]; then
- echo "Daemon is runned with pid = $_pid"
- else
- echo "Daemon is not runned"
- fi
- else
- echo "Daemon is not runned"
- fi
- }
- usage() {
- echo "$0 (once|start|stop|status)"
- }
- case $1 in
- "once")
- SETT_DAEMON_MODE=0
- start
- ;;
- "start")
- start
- ;;
- "stop")
- stop
- ;;
- "status")
- status
- ;;
- *)
- usage
- ;;
- esac
- exit
|