diff options
author | feld <feld@FreeBSD.org> | 2015-02-22 00:50:30 +0800 |
---|---|---|
committer | feld <feld@FreeBSD.org> | 2015-02-22 00:50:30 +0800 |
commit | f90dd98a715ca3d8d5eef7942948b0ab0ea7932a (patch) | |
tree | 5c2084cd5b462491cb89d2b54dbf769a17583d7a /net-mgmt/xymon-client | |
parent | 681ca5ce747c5c8f415db20113d29fb3736e5655 (diff) | |
download | freebsd-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/Makefile | 2 | ||||
-rw-r--r-- | net-mgmt/xymon-client/files/xymon-client.in | 46 |
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" |