Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NUTUPSDRV(8)			   NUT Manual			    NUTUPSDRV(8)

NAME
     nutupsdrv - Generic manual for unified NUT drivers

SYNOPSIS
     nutupsdrv -h

     nutupsdrv [OPTIONS]

DESCRIPTION
     nutupsdrv	is  not  actually  a driver. This is a combined man page for the
     shared code that is the core of many drivers within the Network  UPS  Tools
     package.

     For information on the specific drivers, see their individual man pages.

     UPS  drivers provide a communication channel between the physical UPS hard-
     ware and the upsd(8) server. The driver is responsible for translating  the
     native  protocol  of  the UPS to the common format used by the rest of this
     package.

     The core has three modes of operation which are determined by  the  command
     line  switches.  In  the normal mode, the driver will periodically poll the
     UPS for its state and parameters, as  per	the  pollinterval  parameter  in
     ups.conf(5).  The results of this command are presented to upsd. The driver
     will also handle setting variables and instant commands if available.

     In the second mode, using -k, the driver can instruct the UPS to shut  down
     the load, possibly after some delay. This mode of operation is intended for
     cases when it is known that the UPS is running out of battery power and the
     systems  attached	must  be turned off to ensure a proper reboot when power
     returns.

     In the third mode, using -d, the driver will exit after some update  loops,
     dumping  the data tree (in upsc(8)-like format) to stdout. This can be use-
     ful to complement	the  nut-scanner(8)  to  discover  devices,  along  with
     in-depth data.

	 Note

	 You  probably	don't  want  to  use  any of these options directly. You
	 should use upsdrvctl(8) (or upsdrvsvcctl(8) on systems with  a  service
	 management  framework like systemd or SMF) to control your drivers, and
	 ups.conf(5) to configure them. The rest of this  manual  describes  op-
	 tions and parameters that generally are not needed by normal users.

OPTIONS
     -h
	 Display a help message without doing anything else. This will also list
	 possible  values  for	-x  in that driver, and other help text that the
	 driver's author may have provided.

     -a id
	 Autoconfigure this driver using the id section  of  ups.conf(5).   This
	 argument is mandatory when calling the driver directly.

     -s id
	 Configure this driver only with command line arguments instead of read-
	 ing  ups.conf(5).  To	be  used instead of -a option when need to run a
	 driver not present in driver configuration file. Instead,  driver  con-
	 figuration have to be set with -x options directly in the command line.
	 As  such  driver  instance cannot be controlled by upsdrvctl(8) or ups-
	 drvsvcctl(8), this option should be used for specific needs only.

     -D
	 Raise the debugging level. Use this multiple times to see more details.
	 Running a driver in debug mode will (by default) prevent it from  back-
	 grounding  after  startup.  It  will keep on logging information to the
	 console until it receives a SIGINT (usually Ctrl-C) or SIGTERM signal.

	 The level of debugging needed depends both on the driver and the  prob-
	 lem you're trying to diagnose. Therefore, first explain the problem you
	 have  with  a driver to a developer/maintainer, before sending them de-
	 bugging output. More often than not, if you just pick a level, the out-
	 put may be either too limited or too verbose to be of any use.

     -d update_count
	 Dump the data tree (in upsc(8)-like format) to stdout after running the
	 driver update loop for the specified update_count times and exit.

	 By default this prevents the driver process  from  backgrounding  after
	 startup. Note that the driver banner will be printed too, so when using
	 this option in scripts, don't forget to trim the first line, or use the
	 NUT_QUIET_INIT_BANNER environment variable.

     -q
	 Raise log level threshold. Use this multiple times to log more details.

	 The debugging comment above also applies here.

     -c command
	 Send command to the background process as a signal. Valid commands are:

	 reload
	     reread  configuration  files,  ignoring modified settings which can
	     not be applied "on the fly"

	 reload-or-error
	     reread configuration files, ignoring but  counting  changed  values
	     which require a driver restart (can not be changed on the fly), and
	     return  a	success/fail code based on that count, so the caller can
	     decide the fate of the currently running driver instance

	 reload-or-exit
	     reread configuration files, exiting the old driver  process  if  it
	     encounters  modified settings which can not be applied "on the fly"
	     (so caller like systemd can launch another copy of the driver)

     exit
	 tell the currently running driver instance to just exit (so an external
	 caller like the new driver instance, or the systemd or  SMF  frameworks
	 would start another copy)

     With  recent  NUT v2.8.x releases, such commands can be sent using the Unix
     socket for driver-server interaction. As a fallback, like	older  releases,
     signals  can  be  sent to the PID of an older driver instance (where possi-
     ble).

     -P pid
	 Send the command signal above using specified PID number,  rather  than
	 consulting the PID file. This can help define service units which start
	 each  NUT  driver  as	a foreground process so it does not create a PID
	 file. See also -FF option as an alternative.

     -F
	 Enforce running the driver as a foreground process, regardless  of  de-
	 bugging  or data-dumping settings. Specify twice (-FF or -F -F) to save
	 the PID file even in this mode.

     -B
	 Enforce running the driver as a background process, regardless  of  de-
	 bugging or data-dumping settings.

     -i interval
	 Set  the  poll interval for the device. The default value is 2 (in sec-
	 onds).

     -V
	 Print only version information, then exit.

     -L
	 Print a parsable list of driver variables. Mostly useful for configura-
	 tion wizard programs.

     -k
	 ("Kill" power) Forced shutdown mode. The UPS will  power  off	the  at-
	 tached load, if possible.

	 You  should use upsdrvctl shutdown whenever possible instead of calling
	 this directly. Note that the constrained operating system  context  for
	 shutdown typically rules out use of upsdrvsvcctl shutdown.

     -r directory
	 The  driver will chroot(2) to directory during initialization. This can
	 be useful when securing systems.

	 In addition to the state path, many systems will require  /dev/null  to
	 exist	within	directory  for this to work. The serial ports are opened
	 before the chroot call, so you do not need to create  them  inside  the
	 jail.	In fact, it is somewhat safer if you do not (but reconnection to
	 devices may be no longer possible and could require a full  restart  of
	 the driver).

     -u username
	 Override  the	unprivileged  username	that  the  driver  may use after
	 startup. If started as root, after opening configuration files (and op-
	 tionally calling chroot(2), as described in the previous  option),  the
	 driver will look up username in the passwd database, then change to the
	 user  and group identities associated with username. (If started with a
	 nonzero UID or effective UID, the driver will silently ignore this  op-
	 tion.)

	 When  compiling  NUT from source, the default username is typically no-
	 body, and this may cause permission errors when the  driver  opens  the
	 UPS  device  node.  You can use this option to temporarily override the
	 defaults. For testing purposes, you can set this option to root to  by-
	 pass permission errors, especially with USB-based drivers. However, you
	 will want to remove this option later in order to avoid permission con-
	 flicts between the driver and the unprivileged copy of upsd(8).

     -g groupname
	 Override  the	unprivileged  group  name  that the driver may use after
	 startup to set permissions for the filesystem socket so upsd may  still
	 access  it  if the run-time user of the driver normally would deny that
	 access.

     -x var=val
	 Define a variable called var with the value of var in the driver.  This
	 varies  from  driver to driver -- see their specific man pages for more
	 information.

	 This is like setting var=val in ups.conf(5), but  -x  on  command  line
	 overrides any settings from that file.

	 Note  that  for  fallback values of NUT variables poorly supported by a
	 specific  device  and/or  its	NUT  driver,   you   can   specify   de-
	 fault.var.name=val  to set a default value (may be replaced at run-time
	 by  a	reading  from  the  device,  if  one  does  arrive),  or   over-
	 ride.var.name=val to hard-code a value and ignore its readings from the
	 device  even  if  they are served. For example, this is often used with
	 override.battery.voltage.nominal when the device reports a single  cell
	 in  2V  range,  and you are interested in a standard battery package in
	 12V range, for PbAc.

DIAGNOSTICS
     Information about the startup process is printed to stdout  and/or  stderr.
     Additional  messages after that point are only available in the syslog, un-
     less the driver remains in foreground (e.g. due to  raised  debugging  ver-
     bosity).

     After  upsd(8) starts, the UPS clients such as upsc(8) can be used to query
     the status of an UPS.

PROGRAM CONTROL
     You should always use upsdrvctl(8) (or upsdrvsvcctl(8) on	systems  with  a
     service  management  framework like systemd or SMF) to control the drivers.
     While drivers can be started by hand for testing purposes, it is not recom-
     mended for production use.

FILES
     ups.conf
	 Required configuration file. This contains all details on which drivers
	 to start and where the hardware is attached.

ENVIRONMENT VARIABLES
     NUT_DEBUG_LEVEL sets default debug verbosity if no -D arguments  were  pro-
     vided  on	command line, but does not request that the daemon runs in fore-
     ground mode.

     NUT_CONFPATH is the path name of the directory that contains  ups.conf  and
     other  configuration  files.  If  this  variable  is not set, drivers use a
     built-in default, which is often /usr/local/etc.

     NUT_STATEPATH is the path name of the directory in which upsd  and  drivers
     keep  shared  state information. If this variable is not set, upsd and dri-
     vers use a built-in default, which is often /var/state/ups.  The  STATEPATH
     directive in upsd.conf(5) overrides this variable.

     NUT_ALTPIDPATH  is the path name of the directory in which upsd and drivers
     store .pid files. If this variable is not set, upsd and drivers use  either
     NUT_STATEPATH  if	set, or ALTPIDPATH if set, or otherwise the built-in de-
     fault STATEPATH.

     NUT_QUIET_INIT_UPSNOTIFY=true can be used to prevent daemons which can  no-
     tify  service  management	frameworks (such as systemd) about passing their
     lifecycle milestones from	emitting  such	notifications  (including  those
     about lack of system support for such modern features, once per run).

     NUT_QUIET_INIT_BANNER=true  can  be used to suppress NUT tool name and ver-
     sion banner. NOT recommended for services due  to	adverse  troubleshooting
     impact,  but  may be helpful in shell profiles or scripts which process NUT
     tool outputs.

BUGS
     Some of the drivers may have bugs. See their manuals for more information.

SEE ALSO
   Configuration:
     *	 ups.conf(5)

     *	 nut.conf(5)

   Server:
     *	 upsd(8)

   Clients:
     *	 upsc(8)

     *	 upscmd(8)

     *	 upsrw(8)

     *	 upslog(8)

     *	 upsmon(8)

   CGI programs:
     *	 upsset.cgi(8)

     *	 upsstats.cgi(8)

     *	 upsimage.cgi(8)

   Driver control:
     *	 upsdrvctl(8)

   Drivers:
     *	 adelsystem_cbi(8)

     *	 al175(8)

     *	 apc_modbus(8)

     *	 apcmicrolink(8)

     *	 apcsmart-old(8)

     *	 apcsmart(8)

     *	 apcupsd-ups(8)

     *	 bcmxcp(8)

     *	 bcmxcp_usb(8)

     *	 belkin(8)

     *	 belkinunv(8)

     *	 bestfcom(8)

     *	 bestfortress(8)

     *	 bestuferrups(8)

     *	 bestups(8)

     *	 bicker_ser(8)

     *	 blazer_ser(8)

     *	 blazer_usb(8)

     *	 clone-outlet(8)

     *	 clone(8)

     *	 dummy-ups(8)

     *	 etapro(8)

     *	 everups(8)

     *	 failover(8)

     *	 gamatronic(8)

     *	 generic_modbus(8)

     *	 genericups(8)

     *	 huawei-ups2000(8)

     *	 isbmex(8)

     *	 ivtscd(8)

     *	 liebert-esp2(8)

     *	 liebert-gxe(8)

     *	 liebert(8)

     *	 masterguard(8)

     *	 meanwell_ntu(8)

     *	 metasys(8)

     *	 mge-shut(8)

     *	 mge-utalk(8)

     *	 microdowell(8)

     *	 microsol-apc(8)

     *	 must_ep2000pro(8)

     *	 netxml-ups(8)

     *	 nhs_ser(8)

     *	 nut-upower(8)

     *	 nutdrv_atcl_usb(8)

     *	 nutdrv_hashx(8)

     *	 nutdrv_qx(8)

     *	 nutdrv_siemens-sitop(8)

     *	 oneac(8)

     *	 optiups(8)

     *	 phoenixcontact_modbus(8)

     *	 powercom(8)

     *	 powerman-pdu(8)

     *	 powerpanel(8)

     *	 powervar_cx_ser(8)

     *	 powervar_cx_usb(8)

     *	 ragtech(8)

     *	 rhino(8)

     *	 richcomm_usb(8)

     *	 riello_ser(8)

     *	 riello_usb(8)

     *	 safenet(8)

     *	 sms_ser(8)

     *	 snmp-ups(8)

     *	 socomec_jbus(8)

     *	 solis(8)

     *	 tripplite(8)

     *	 tripplite_usb(8)

     *	 tripplitesu(8)

     *	 upscode2(8)

     *	 usbhid-ups(8)

     *	 ve-direct(8)

     *	 victronups(8)

   Internet resources:
     The NUT (Network UPS Tools) home page: https://www.networkupstools.org/

Network UPS Tools 2.8.5.	   08/04/2026			    NUTUPSDRV(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nutupsdrv&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help