DragonFly On-Line Manual Pages
powerman(1) powerman powerman(1)
NAME
powerman - power on/off nodes
SYNOPSIS
pm [-options] -action [targets] [-action [targets] ...]
DESCRIPTION
powerman provides power management in a data center or compute cluster
environment. It performs operations such as power on, power off, and
power cycle via remote power controller (RPC) devices. Target
hostnames are mapped to plugs on RPC devices in powerman.conf(5).
OPTIONS
-1, --on targets
Power ON targets.
-0, --off targets
Power OFF targets.
-c, --cycle targets
Power cycle targets.
-r, --reset targets
Assert hardware reset for targets (if implemented by RPC).
-f, --flash targets
Turn beacon ON for targets (if implemented by RPC).
-u, --unflash targets
Turn beacon OFF for targets (if implemented by RPC).
-l, --list
List available targets. If possible, output will be compressed
into a host range (see TARGET SPECIFICATION below).
-q, --query-all
Query plug status of all targets. Status is not cached; each
time this option is used, powermand queries the appropriate
RPC's. Targets connected to RPC's that could not be contacted
(e.g. due to network failure) are reported as status "unknown".
If possible, output will be compressed into host ranges.
-Q, --query targets
Query plug status of specific targets.
-n, --soft-all
Query soft power status of all targets (if implemented by RPC).
In this context, a node in the OFF state could be ON at the plug
but operating in standby power mode.
-N, --soft targets
Query soft power status of specific targets (if implemented by
RPC).
-b, --beacon-all
Query beacon status of all targets (if implemented by RPC).
-B, --beacon targets
Query beacon status of specific targets (if implemented by RPC).
-t, --temp-all
Query node temperature of all targets (if implemented by RPC).
Temperature information is not interpreted by powerman and is
reported as received from the RPC on one line per target,
prefixed by target name.
-P, --temp targets
Query node temperature of specific targets (if implemented by
RPC).
-L, --license
Show powerman license information.
-h, --server-host host[:port]
Connect to a powerman daemon on non-default host and optionally
port.
-V, --version
Display the powerman version number and exit.
-D, --device
Displays RPC status information. If targets are specified, only
RPC's matching the target list are displayed.
-T, --telemetry
Causes RPC telemetry information to be displayed as commands are
processed. Useful for debugging device scripts.
-x, --exprange
Expand host ranges in query responses.
-g, --genders
If configured with the genders(3) package, this option tells
powerman that targets are genders attributes that map to node
names rather than the node names themselves.
TARGET SPECIFICATION
powerman target hostnames may be specified as comma separated or space
separated hostnames or host ranges. Host ranges are of the general
form: prefix[n-m,l-k,...], where n < m and l < k, etc., This form
should not be confused with regular expression character classes (also
denoted by ``[]''). For example, foo[19] does not represent foo1 or
foo9, but rather represents a degenerate range: foo19.
This range syntax is meant only as a convenience on clusters with a
prefixNN naming convention and specification of ranges should not be
considered necessary -- the list foo1,foo9 could be specified as such,
or by the range foo[1,9].
Some examples of powerman targets follows:
Power on hosts bar,baz,foo01,foo02,...,foo05
powerman --on bar baz foo[01-05]
Power on hosts bar,foo7,foo9,foo10
powerman --on bar,foo[7,9-10]
Power on foo0,foo4,foo5
powerman --on foo[0,4-5]
As a reminder to the reader, some shells will interpret brackets ([ and
]) for pattern matching. Depending on your shell, it may be necessary
to enclose ranged lists within quotes. For example, in tcsh, the last
example above should be executed as:
powerman --on "foo[0,4-5]"
FILES
/usr/local/bin/powerman
/usr/local/bin/pm
ORIGIN
PowerMan was originally developed by Andrew Uselton on LLNL's Linux
clusters. This software is open source and distributed under the terms
of the GNU GPL.
SEE ALSO
powerman(1), powermand(8), httppower(8), plmpower(8), vpcd(8),
powerman.conf(5), powerman.dev(5).
http://code.google.com/p/powerman
powerman-2.3.20 2014-08-26 powerman(1)
PM-GAWK(1) Utility Commands PM-GAWK(1)
NAME
persistent memory gawk - persistent data and functions
SYNOPSIS
truncate -s size heap.pma
export GAWK_PERSIST_FILE=heap.pma
gawk ...
truncate -s size heap.pma
GAWK_PERSIST_FILE=heap.pma gawk ...
truncate -s size heap.pma
alias pm='GAWK_PERSIST_FILE=heap.pma'
pm gawk ... # succinct
unset GAWK_PERSIST_FILE # disable persistence
export GAWK_PERSIST_FILE=other_heap.pma # change heap
rm heap.pma # delete heap
DESCRIPTION
Gawk 5.2 and later supports a persistent memory feature that can store
script-defined variables and functions in a file for later use. The
feature, called pm-gawk, is described in GAWK: Effective AWK
Programming and in Persistent Memory gawk User Manual.
pm-gawk is activated by passing to gawk the name of an initially empty
(all-zero-bytes) heap file, via the environment variable
GAWK_PERSIST_FILE. pm-gawk retains script-defined variables and
functions in the heap file for use in subsequent gawk invocations.
pm-gawk offers at least two advantages compared with the existing
rwarray extension: it offers constant-time (``O(1) time'') access to
individual elements of persistent associative arrays, and it can store
script-defined functions in addition to variables.
EXAMPLES
Demonstrate persistent variables:
$ truncate -s 1G heap.pma # create heap file
$ export GAWK_PERSIST_FILE=heap.pma # "ambient" env var
$ gawk 'BEGIN { print ++i }'
1
$ gawk 'BEGIN { print ++i }'
2
$ gawk 'BEGIN { print ++i }'
3
To pass the environment variable on per-command basis:
$ unset GAWK_PERSIST_FILE
$ GAWK_PERSIST_FILE=heap.pma gawk 'BEGIN { print ++i }'
4
$ GAWK_PERSIST_FILE=heap.pma gawk 'BEGIN { print ++i }'
5
$ GAWK_PERSIST_FILE=heap.pma gawk 'BEGIN { print ++i }'
6
To reduce visual clutter of per-command environment variable passing:
$ alias pm='GAWK_PERSIST_FILE=heap.pma'
$ pm gawk 'BEGIN { print ++i }'
7
$ pm gawk 'BEGIN { print ++i }'
8
To refrain from activating persistence:
$ unset GAWK_PERSIST_FILE
$ gawk 'BEGIN { print ++i }'
1
$ gawk 'BEGIN { print ++i }'
1
To permanently ``forget'' the contents of the heap file:
$ rm heap.pma
ENVIRONMENT VARIABLES
GAWK_PERSIST_FILE contains the name of a heap file where script-defined
variables and functions are stored. If this environment variable is
not visible to gawk, the persistence feature is not activated and gawk
behaves in its traditional manner.
VERSION INFORMATION
Persistent memory gawk was first released in gawk 5.2.
AUTHORS
Arnold Robbins, the maintainer of gawk, implemented pm-gawk using a
persistent memory allocator (pma) provided by Terence Kelly. An
earlier proof-of-concept prototype of persistent gawk was developed by
Haris Volos, Zi Fan Tan, and Jianan Li using a fork of the official
gawk sources.
CAVEATS
The GNU/Linux CIFS filesystem is known to cause problems for the
persistent memory allocator. Do not use a backing file on such a
filesystem with pm-gawk.
BUG REPORTS
Follow the procedures in GAWK: Effective AWK Programming and in
Persistent Memory gawk User Manual. For suspected bugs related to
persistence (as opposed to other non-persistence-related gawk bugs)
please also send e-mail to Terence Kelly at one or more of these
addresses: tpkelly@acm.org, tpkelly@eecs.umich.edu, or
tpkelly@cs.princeton.edu.
SEE ALSO
gawk(1), GAWK: Effective AWK Programming, and Persistent Memory gawk
User Manual. The two manuals should be available in the Info subsystem
if Info installed on your system.
See https://web.eecs.umich.edu/~tpkelly/pma/ for the latest source code
and manual.
COPYING PERMISSIONS
Copyright (C) 2022 Terence Kelly.
Permission is granted to make and distribute verbatim copies of this
manual page provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual page under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual page into another language, under the above conditions for
modified versions, except that this permission notice may be stated in
a translation approved by the Foundation.
Free Software Foundation Nov 17 2022 PM-GAWK(1)