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 [email protected] 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 [email protected]
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.
 
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 [email protected] 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...
 
Thanks!
 
 
With the best wishes,
Dennis
_______________________________________________
Nut-upsuser mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsuser

Reply via email to