aboutsummaryrefslogtreecommitdiffstats
path: root/net-mgmt/xymon-client
diff options
context:
space:
mode:
authorfeld <feld@FreeBSD.org>2015-02-22 00:50:30 +0800
committerfeld <feld@FreeBSD.org>2015-02-22 00:50:30 +0800
commitf90dd98a715ca3d8d5eef7942948b0ab0ea7932a (patch)
tree5c2084cd5b462491cb89d2b54dbf769a17583d7a /net-mgmt/xymon-client
parent681ca5ce747c5c8f415db20113d29fb3736e5655 (diff)
downloadfreebsd-ports-gnome-f90dd98a715ca3d8d5eef7942948b0ab0ea7932a.tar.gz
freebsd-ports-gnome-f90dd98a715ca3d8d5eef7942948b0ab0ea7932a.tar.zst
freebsd-ports-gnome-f90dd98a715ca3d8d5eef7942948b0ab0ea7932a.zip
Execute the xymonlaunch process directly. The supplied runclient.sh
script duplicates much of the rc script and adds unnecessary complexity. While here ensure that leftover processes are cleaned up. This also fixes a recent regression which prevented xymon-client from reliably starting on boot. PR: 197827
Diffstat (limited to 'net-mgmt/xymon-client')
-rw-r--r--net-mgmt/xymon-client/Makefile2
-rw-r--r--net-mgmt/xymon-client/files/xymon-client.in46
2 files changed, 43 insertions, 5 deletions
diff --git a/net-mgmt/xymon-client/Makefile b/net-mgmt/xymon-client/Makefile
index 9ad951c7181d..387c19cf38e2 100644
--- a/net-mgmt/xymon-client/Makefile
+++ b/net-mgmt/xymon-client/Makefile
@@ -2,7 +2,7 @@
PORTNAME= xymon
PORTVERSION= 4.3.18
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= net-mgmt www
MASTER_SITES= SF/xymon/Xymon/${PORTVERSION}
PKGNAMESUFFIX= -client${PKGNAMESUFFIX2}
diff --git a/net-mgmt/xymon-client/files/xymon-client.in b/net-mgmt/xymon-client/files/xymon-client.in
index 232174c6ded6..002ec73f19c6 100644
--- a/net-mgmt/xymon-client/files/xymon-client.in
+++ b/net-mgmt/xymon-client/files/xymon-client.in
@@ -16,10 +16,48 @@ load_rc_config "$name"
: ${xymon_client_enable:=NO}
: ${xymon_client_user:=%%XYMONUSER%%}
-command=%%WWWDIR%%/client/runclient.sh
-command_args="${xymon_client_flags} ${1}"
-procname=%%WWWDIR%%/client/bin/xymonlaunch
pidfile="%%WWWDIR%%/client/logs/clientlaunch.`hostname`.pid"
-start_precmd="chown -R ${xymon_client_user} %%WWWDIR%%/client/logs"
+command=%%WWWDIR%%/client/bin/xymonlaunch
+command_args="--config=%%WWWDIR%%/client/etc/clientlaunch.cfg --log=%%WWWDIR%%/client/logs/clientlaunch.log --pidfile=${pidfile}"
+start_precmd=xymon_precmd
+# Clean up leftover children
+stop_postcmd="pkill -U ${xymon_client_user}"
+
+xymon_precmd()
+{
+ # Don't actually pass $xymon_client_flags to $command
+ rc_flags=""
+
+ # Ensure permissions of log dir
+ chown -R ${xymon_client_user} %%WWWDIR%%/client/logs
+
+ # Below is pulled almost directly from Xymon's runclient.sh script which we are bypassing due to redundancy
+
+ # Default settings for this client
+ MACHINEDOTS="`uname -n`"
+ SERVEROSTYPE="`uname -s | tr '[ABCDEFGHIJKLMNOPQRSTUVWXYZ/]' '[abcdefghijklmnopqrstuvwxyz_]'"`
+ XYMONOSSCRIPT="xymonclient-$SERVEROSTYPE.sh"
+ XYMONCLIENTHOME="%%WWWDIR%%/client"
+
+ for i in $xymon_client_flags; do
+ case "$i" in
+ --hostname=*)
+ MACHINEDOTS="`echo $i | sed -e 's/--hostname=//'`"
+ ;;
+ --os=*)
+ SERVEROSTYPE="`echo $i | sed -e 's/--os=//' | tr '[ABCDEFGHIJKLMNOPQRSTUVWXYZ/]' '[abcdefghijklmnopqrstuvwxyz_]'`"
+ ;;
+ --class=*)
+ CONFIGCLASS="`echo $i | sed -e 's/--class=//' | tr '[ABCDEFGHIJKLMNOPQRSTUVWXYZ/]' '[abcdefghijklmnopqrstuvwxyz_]'`"
+ ;;
+ esac
+ shift
+ done
+
+ export MACHINEDOTS SERVEROSTYPE XYMONOSSCRIPT XYMONCLIENTHOME CONFIGCLASS
+
+ MACHINE="`echo $MACHINEDOTS | sed -e 's/\./,/g'`"
+ export MACHINE
+}
run_rc_command "$1"