[Nut-upsuser] NUT Windows port questions

Frédéric Bohé fredericbohe at eaton.com
Thu Jan 5 09:01:28 UTC 2012


On Wed, 2012-01-04 at 23:44 +0400, Serov Denis wrote:
> Hello NUT Team!
>  
> I've got some questions about NUT (Windows port), which I couldn't
> resolve by myself.
>  
> I have a test environment that contains:
> 1. NUT network server (OS: Debian 6.0.3, x64, NUT 2.4.3)
> 2. Linux clients (OS: different, NUT 2.4.3, 2.6.1)
> 3. Windows clients (OS: Windows Standard Server Core 2008 R1 SP1,
> Windows 7 x64 Ultimate SP1, NUT-Installer-2.6.1-1.msi)
> 4. APC Back-UPS ES 550 connected to network server
>  
> Currently, network server and Linux clients are working well. I can
> see UPS variables via "upsc" (server/clients), can shutdown slaves and
> masters via "upsmon -c fsd", no problem with timers and early shutdown
> script, etc...
>  
> Now, I am trying to set the same configuration on Windows Server as on
> Linux clients and have no success. I use the following configuration
> (don't carry about credentials =):
>  
> nut.conf
> MODE = netclient
>  
> upsmon.conf
> RUN_AS_USER user
> MONITOR mainups at 192.168.10.2 1 monuser secret slave
> MINSUPPLIES 1
> SHUTDOWNCMD "shutdown.exe -s -t 0 -c \"Bla-bla-bla.\""
> NOTIFYCMD upssched.exe
> POLLFREQ 5
> POLLFREQALERT 5
> HOSTSYNC 15
> DEADTIME 15
> POWERDOWNFLAG "C:\\killpower.flag"
> NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
> NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
> RBWARNTIME 43200
> NOCOMMWARNTIME 300
> FINALDELAY 5
>  
> upsd.users
> [user]
> password = 123qweASD
> [mainups]
> password = secret
> upsmon slave
> upssched.conf
> CMDSCRIPT upsscript.cmd
> PIPEFN C:\\NUT\\NUT\\upssched.pipe
> LOCKFN C:\\NUT\\NUT\\upssched.lock
> ...
>  
> In this configuration, I can see UPS variables, Windows Server is
> shutting down on "upsmon -c fsd".
>  
> For example:
> upsc mainups at 192.168.10.2
> battery.charge: 100
> battery.charge.low: 10
> battery.charge.warning: 50
> battery.date: 2011/12/30
> battery.mfr.date: 2011/12/30
> battery.runtime: 6675
> battery.runtime.low: 120
> battery.type: PbAc
> battery.voltage: 13.5
> battery.voltage.nominal: 12.0
> device.mfr: American Power Conversion
> device.model: Back-UPS ES 525
> ...
>  
> 1. It seems that it impossible to use long file names with spaces in
> PIPEFN/LOCKFN/NOTIFYCMD/... (like "C:\Program Files (x86)\NUT\sbin
> \upssched.exe") or I couldn't find the way (error: cannot find "C:
> \Program "). Environment variables are not supported too (it would be
> great to use %ProgramFiles% in the paths).
>  
> This problem is the reason, why I had to use "C:\NUT\NUT" directory
> for pipe & lock. Moreover, to start "upssched.exe" via NOTIFYCMD, I
> included "C:\Program Files (x86)\NUT\bin" and "C:\Program Files
> (x86)\NUT\sbin" into %PATH% variable.

Indeed using name with spaces is not obvious and I have recently added a
note this in the doc. This is an example of what you need :

PIPEFN "\"C:\\Program Files\\NUT\\upssched.pipe\""

Let me know if this solve this point.


>  
> 2. I added line "AT ONBATT * EXECUTE Dennis" into end of
> "upssched.conf". Then "mainups" is going to battery, NUT writes proper
> event into Application Log: "upsmon - UPS mainups at 192.168.10.2 on
> battery.". It is OK, but strange thing is that the script
> "upsscript.cmd" was not executed. I have checked it several times
> (even using Process Monitor from sysinternals - process "upssched.exe"
> is not started at all). The next interesting thing: I started "upsmon
> -DDD" and ... at the next battery event, "upssched.exe" was executed
> and "upsscript.cmd" has been executed too.
>  
> By default, there are "nut.exe" and one "upsmon.exe" processes in
> Windows Server (after its starting). There are two "upsmon" in Linux
> client. It is correct situation? Should I start one more instance of
> "upsmon" to execute CMDSCRIPT successfully or I have a problem in my
> configs oor something else?
>  
> 3. I have tried to use timers. If remove previous line from
> "upssched.conf" and add "AT ONBATT * START-TIMER onbattwarn 3", "AT
> ONLINE * CANCEL-TIMER onbattwarn", the behaviour will be like in
> previous item: no running "upssched.exe" without second instance of
> "upsmon", but with additional effects =). "upssched.exe" is starting,
> "upssched.lock" file is created, then process is terminated with event
> "upssched.exe - Failed to connect to parent and failed to create
> parent: Permission denied.".
>  
> I couldn't fix this problem =(. I've checked the permissions, user's
> accounts for all NUT processes/FS/etc. It seems that everything is OK.
> I think that the problem is in get_lock function in "upssched.c". No
> ideas why, anyway, GetLastError returns "permission denied" strongly.
>  
> 4. A few times, I've got error "upssched.exe - open /dev/null: No such
> file or directory." during my experiments, but I have no idea how to
> reproduce it =(
>  
> The main question: is there someone who has success with timers on
> Windows x64 platform? I would like to use them...


upssched is not correctly ported right now. Fixing it is on my todo
list, but I can't give you any date for that.

Fred


>  
> Thanks!
>  
>  
> With the best wishes,
> Dennis
> _______________________________________________
> Nut-upsuser mailing list
> Nut-upsuser at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsuser

-- 
Team Open Source Eaton - http://powerquality.eaton.com

--------------------------------------------------------------------------



More information about the Nut-upsuser mailing list