r9: - dodao aosi
[monit-cn.git] / update-monit.d
index 4ed19e1..05472e9 100755 (executable)
@@ -1,4 +1,11 @@
 #!/bin/sh
+#
+# Copyright (C) 2007  Dinko Korunic, CARNet, Grupa za izradu paketa
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
 
 MONIT_DIR=/etc/monit.d
 TEMPLATES_DIR=/usr/share/monit-cn
@@ -12,13 +19,26 @@ check_service() {
         return 1
     fi
 
-    script='BEGIN { RS = "[ \t\n]+" }
+    scriptpid='BEGIN { RS = "[ \t\n]+" }
                { line[NR] = $0 "" }
          END { for (j in line)
                 if (line[j] == "pidfile")
                     print line[j + 1] }'
-    pidfiles=$(awk "$script" < "$filename" | sed -e 's/"//g')
+    pidfiles=$(awk "$scriptpid" < "$filename" | sed -e 's/"//g')
     check_pidfile $pidfiles
+
+    if [ $RET -eq 1 ]; then
+        return 1
+    fi
+
+    scriptinit='BEGIN { RS = "[ \t\n]+" }
+               { line[NR] = $0 "" }
+         END { for (j in line)
+                if (((line[j] == "start") || (line[j] == "stop")) && (line[j + 1] == "program"))
+                    print line[j + 3] }'
+    initscripts=$(awk "$scriptinit" < "$filename" | sed -e 's/"//g')
+    check_initscript $initscripts
+
     return $RET
 }
 
@@ -41,6 +61,20 @@ check_pidfile() {
     return 0
 }
 
+check_initscript() {
+    RET=0
+
+    while [ -n "$1" ]; do
+        if [ ! -x "$1" ]; then
+            RET=1
+            return 1
+        fi
+        shift
+    done
+
+    return 0
+}
+
 check_pid() {
     RET=0