Linux Blog


Section: User's Manual (1)
Updated: Oct 24, 2006
Index Return to Main Contents



gkrellmd - The GNU Krell Monitors Server



gkrellmd [ --help ] [ --verbose ] [ -u | --update-hz f ] [ -m | --max-clients N ] [ -A | --address server_address ] [ -P | --port server_port ] [ -a | --allow-host hostname ] [ -d | --detach ] [ -p | --plugin name ] [ -pe | --plugin-enable name ] [ --plist ] [ --plog ] [ -U | --user username ] [ -G | --group groupname ] [ --pidfile path ] [ --inet-interval seconds ] [ --io-timeout seconds ] [ --reconnect-timeout seconds ] [ --mailbox mbox_path ] [ --net-timer net_interface ] [ --mbmon-port number ]



gkrellmd Listens for connections from gkrellm clients. When a gkrellm client connects to a gkrellmd server all builtin monitors collect their data from the server. However, the gkrellm process is running on the local machine, so plugins enabled in gkrellm will collect data from the local context unless the plugin is client/server capable and has a gkrellmd plugin counterpart which is installed and enabled on the server. Enabling a gkrellmd plugin installed on a server requires adding a plugin-enable line to a gkrellmd.conf file.

Any command launching from a gkrellm client will run commands on the local machine. If you want to execute commands on the server, the client side commands can use ssh.

There is no support for file system mounting on the machine where the gkrellmd server is running.



-h --help
Displays usage information and exits.
-v --version
Prints gkrellmd version and exits.
-V --verbose
Prints connection progress.
-u, --update-hz f
Sets the data update frequency in samples per second for the server. This is independent of and should be less than the gkrellm client update rate. The rate can be from 1 to 10 and should be lower to minimize network traffic. A value of not much more than 1/2 the client update rate is best where it is not important to minimize network traffic.
-m, --max-clients N
Sets the maximum number of simultaneous clients allowed to connect to the server.
-A, --address server_address
Use server_address for the network connection.
-P, --port server_port
Use server_port for the network connection.
-a, --allow-host hostname
Specify hosts which are allowed to connect. Multiple allow-host arguments may be given. If no hosts are specified on the command line or in a gkrellmd.conf file, then all hosts are allowed to connect. The hostname argument may be a text name or a IPv4 or IPv6 dotted notation. For IPv4, the simple subnet pattern x.y.z.* may be used. Also, if hostname is the keyword ALL then all hosts are allowed. This option is additive and specified hosts will be added to the hostnames listed in gkrellmd.conf files unless the --clear-hosts option is given first.

-p, --plugin name
For plugin development convenience, load and enable the command line specified plugin to avoid repeated install steps in the development cycle. See the README from the gkrellm demo5 for more information on gkrellmd plugin development. Requires at least gkrellmd version 2.2.0.
-pe, --plugin-enable name
Specify an installed plugin to enable (this is probably more convenient to specify in a gkrellmd.conf file). Requires at least gkrellmd version 2.2.0.

Output a list of plugins which are installed and available to enable and exit. Requires at least gkrellmd version 2.2.0.
Output a log of the plugin install process. When requesting a log, the --detach option will have no effect. Requires at least gkrellmd version 2.2.0.

-c, --clear-hosts
Clears the current list of allowed hosts. Use this before any --allow-host arguments if you want command line allowed hosts to override and not be additive to those specified in gkrellmd.conf files.
-d, --detach
Runs gkrellmd in the background and detaches from the terminal.
-U, --user username
Changes user to username after startup. Useful if you want to run gkrellmd as root, but set it to run with another privileges; typically as the nobody user.
-G, --group groupname
Changes group to groupname after startup.
--pidfile path
Create a PID file for the running gkrellmd. Typically, path would be /var/run/ Default is no PID file.
--inet-interval seconds
The Internet monitor defaults to reading TCP connections once per second. However, for Linux SMP kernels where reading /proc/net/tcp causes high cpu usage, the inet-interval may be set to 1-20 seconds to slow down /proc/net/tcp reads. Or set it to 0 to totally disable the Internet monitor. Requires at least gkrellmd version 2.1.8.
--io-timeout seconds
Configure gkrellm clients to disconnect from a gkrellmd server if there is an io-timeout interval where the client receives no input from the server. Use this for conditions where gkrellmd may be ungracefully terminated such that socket connections are not closed. Minimum is 2 (less than 2 for no I/O disconnecting and is the default). Requires at least 2.1.8 versions of both gkrellmd and gkrellm.
--reconnect-timeout seconds
Configure gkrellm clients to attempt automatic reconnects to a gkrellmd server every reconnect-timeout seconds after a disconnected state is detected. Disconnected states are created by normal gkrellmd shutdowns or by an expiring io-timeout. Minimum is 2 (less than 2 for no automatic reconnecting and is the default). Requires at least 2.1.8 versions of both gkrellmd and gkrellm.
--mailbox mbox_path
Check the server side mailbox mbox_path and send mail counts to connected gkrellm clients. Mailbox types may be mbox, Maildir, and MH mail. Requires at least 2.1.11 versions of both gkrellmd and gkrellm.

--net-timer net_interface
Configure gkrellmd to send the connect time for a network interface to all clients to be displayed in the client gkrellm timer button monitor display. If this is done, the client gkrellm timer button can still execute commands on the client, but the button will not affect the timer display. If you want the client timer button to execute commands on the server, your timer button commands can use ssh. So set this if your server box has say a ppp0 or ippp0 connection and you want to monitor its connect time. Requires at least 2.2.7 versions of both gkrellmd and gkrellm.

--mbmon-port port_number
If the mbmon daemon is running when gkrellmd is started, gkrellmd will connect to mbmon using the given port_number and send mbmon sensor data to connected gkrellm clients. The mbmon daemon should have been started using the same port number like so: mbmon -r -P port_number



On the server machine where gkrellmd is installed, copy the sample gkrellmd.conf file from the server subdirectory of the gkrellm source tarball to one of the gkrellmd.conf locations listed in the FILES section and edit it to set your preferences or to enable plugins. Probably don't set the detached option until you are happy with the configuration. Run: gkrellmd

On a client machine, run: gkrellm -s server-machine-name

Configure the client gkrellm in its graphical configuration window as you wish, and that's all there is to it. Of course, if you don't use the default gkrellmd port number you will have to supply an appropriate port argument to the client gkrellm.

Available plugins will be installed in the plugins-gkrellmd directory locations listed in the FILES section. You may test enable any of these plugins with the -pe option, but for permanent enabling you should add a plugin-enable line to any gkrellmd.conf file listed in the FILES section. Run gkrellmd -plist to see a list of all installed plugins and run gkrellmd -plog to see a log of the plugin install process.



System server config which is read first. The config file may contain lines similar to the command line args. For example:
allow-host localhost
allow-host 192.168.0.*
port 19150
max-clients 2
update-hz 2
io-timeout 5
reconnect-timeout 5
plugin-enable gkrelltopd

With the exception of --allow-host, command line args will override options in gkrellmd.conf files.

Local server config file which is read second.
User server config file which is read last.
User server plugin directory.
System wide server plugin directory.
Local server plugin directory.



Bill Wilson <>.