holyachon 2016-02-17
sample service script for yona
@5112b2e1cf5a0593fd7a20e2c0a5d1f719a131d3
 
yona.sh (added)
+++ yona.sh
@@ -0,0 +1,140 @@
+#!/bin/bash
+ 
+# Licence: GPLv3, MIT, BSD, Apache or whatever you prefer; FREE to use, modify, copy, no obligations
+# Description: Bash Script to Start the process with NOHUP and & - in background, pretend to be a Daemon
+# Author: Andrew Bikadorov
+# Script v1.5
+ 
+# For debugging purposes uncomment next line
+#set -x
+ 
+# Config, can be altered
+APP_NAME="Yona"
+APP_FILENAME="yona"
+APP_PID="/var/run/$APP_FILENAME.pid"
+APP_PATH="/home/yona/bin" # 이 경로를 알맞게 수정해주세요
+APP_FILE=$APP_FILENAME
+APP_LOGS=$APP_PATH"/logs"
+APP_PRE_OPTION=""
+APP_POST_OPTION=""
+ 
+# Should Not Be altered
+TMP_FILE="/tmp/status_$APP_FILENAME"
+### For internal usage
+STATUS_CODE[0]="Is Running"
+STATUS_CODE[1]="Not Running"
+STATUS_CODE[2]="Stopped incorrectly"
+STATUS_CODE[9]="Default Status, should not be seen"
+ 
+start() {
+   
+    checkpid
+    STATUS=$?
+    if [ $STATUS -ne 0 ] ;
+    then
+        echo "Starting $APP_NAME..."
+        nohup $APP_PRE_OPTION $APP_PATH/$APP_FILE $APP_POST_OPTION > $APP_LOGS/$APP_FILENAME.out 2> $APP_LOGS/$APP_FILENAME.err < /dev/null &
+        # You can un-comment next line to see what command is exactly executed
+        # echo "nohup $APP_PRE_OPTION $APP_PATH/$APP_FILE $APP_POST_OPTION > $APP_LOGS/$APP_FILENAME.out 2> $APP_LOGS/$APP_FILENAME.err < /dev/null &"
+        echo PID $!
+        echo $! > $APP_PID
+       
+        statusit
+        #echo "Done"
+    else
+        echo "$APP_NAME Already Running"
+    fi
+}
+ 
+stop() {
+    checkpid
+    STATUS=$?
+    if [ $STATUS -eq 0 ] ;
+    then
+        echo "Stopping $APP_NAME..."
+        kill `cat $APP_PID`
+        rm $APP_PID
+        statusit
+        #echo "Done"
+    else
+        echo "$APP_NAME - Already killed"
+    fi
+}
+ 
+checkpid(){
+    STATUS=9
+   
+    if [ -f $APP_PID ] ;
+    then
+        #echo "Is Running if you can see next line with $APP_NAME"
+        ps -Fp `cat $APP_PID` | grep $APP_FILE > $TMP_FILE
+        if [ -f $TMP_FILE -a -s $TMP_FILE ] ;
+            then
+                STATUS=0
+                #"Is Running (PID `cat $APP_PID`)"
+            else
+                STATUS=2
+                #"Stopped incorrectly"
+            fi
+       
+        ## Clean after yourself
+        rm -f $TMP_FILE
+    else
+        STATUS=1
+        #"Not Running"
+    fi
+   
+    return $STATUS
+}
+ 
+statusit() {
+    #TODO
+    #status -p $APP_PID ghost
+    checkpid
+    #GET return value from previous function
+    STATUS=$?
+    #echo $?
+   
+    EXITSTATUS=${STATUS_CODE[STATUS]}
+   
+    if [ $STATUS -eq 0 ] ;
+    then
+        EXITSTATUS=${STATUS_CODE[STATUS]}" (PID `cat $APP_PID`)"
+    fi
+   
+    #echo "First Index: ${NAME[0]}"
+    #echo "Second Index: ${NAME[1]}"
+   
+    echo $APP_NAME - $EXITSTATUS
+    #${STATUS_CODE[STATUS]}
+   
+}
+ 
+ 
+ 
+case "$1" in
+ 
+    'start')
+        start
+        ;;
+ 
+    'stop')
+        stop
+        ;;
+ 
+    'restart')
+        stop
+        start
+        ;;
+ 
+    'status')
+        statusit
+        ;;
+       
+    *)
+        echo "Usage: $0 { start | stop | restart | status }"
+        exit 1
+        ;;
+esac
+ 
+exit 0
Add a comment
List