tinyproxy

package: tinyproxy

title: tinyproxy(8)

summary: A light\-weight HTTP proxy daemon

text:
# tinyproxy(8)

## NAME
tinyproxy - A light-weight HTTP proxy daemon

## SYNOPSIS
tinyproxy [-vdch]

## DESCRIPTION
tinyproxy is a light-weight HTTP proxy daemon designed to consume a minimum amount of system resources. It listens on a given TCP port and handles HTTP proxy requests. Designed from the ground up to be fast and yet small, it is an ideal solution for use cases such as embedded deployments where a full featured HTTP proxy is required, but the system resources for a larger proxy are unavailable.

## OPTIONS
tinyproxy accepts the following options:

-c <config-file>

Use an alternate configuration file.

-d

Don't daemonize and stay in the foreground. Useful for debugging purposes.

-h

Display a short help screen of command line arguments and exit.

-v

Display version information and exit.

## SIGNALS
In addition to command-line options, there are also several signals that can be sent to tinyproxy while it is running to generate debugging information and to force certain events.

SIGHUP

Force Tinyproxy to do a garbage collection on the current connections linked list. This is usually done automatically after a certain number of connections have been handled. (Daemon mode only)

SIGUSR1

Force reload of config file and filter list. This is handy to update the configuration if Tinyproxy is running in foreground without dropping active connections.

## TEMPLATE FILES
There are two occasions when Tinyproxy delivers HTML pages to the client on it's own right:

- When an error occurred, a corresponding error page is returned.

- When a request for the stathost is made, a page summarizing the connection statistics is returned. (See STATHOST below.)

The layout of both error pages and the statistics page can be controlled via configurable HTML template files that are plain HTML files that additionally understand a few template variables.

## TEMPLATE VARIABLES
There are several standard HTML variables that are available in every template file:

request

The full HTTP request line.

cause

The abbreviated cause of the error condition.

clientip

The IP address of the client making the request.

clienthost

The hostname of the client making the request.

version

The version of Tinyproxy.

package

The package name. Presently, resolves to 'tinyproxy'.

date

The current date/time in HTTP format.

In addition, almost all templates support:

detail

A detailed, plain English explanation of the error and possible causes.

When Tinyproxy finds a variable name enclosed in braces, e.g. "{request}", then this is replaced by the value of the corresponding variable before delivery of the page.

## STATHOST
Tinyproxy returns a HTML page with connection statistics when it receives a HTTP request for a certain host -- the stathost. The stathost name defaults to `tinyproxy.stats` and can be changed at runtime to any name or IP address with the configuration variable `StatHost`.

The stat file template can be changed at runtime through the configuration variable `StatFile`.

## FILES
/etc/tinyproxy/tinyproxy.conf

/var/run/tinyproxy/tinyproxy.pid

/var/log/tinyproxy/tinyproxy.log

## BUGS
To report bugs in Tinyproxy, please visit <https://tinyproxy.github.io/>.

## SEE ALSO
tinyproxy.conf(5)

## AUTHOR
This manpage was written by the Tinyproxy project team.

## COPYRIGHT
Copyright (c) 1998-2020 the Tinyproxy authors.

This program is distributed under the terms of the GNU General Public License version 2 or above. See the COPYING file for additional information.


tinysshd

package: tinyssh

title: tinysshd(8)

summary: Tiny SSH daemon

text:
# tinysshd(8)

## NAME
tinysshd - Tiny SSH daemon

## SYNOPSIS
tinysshd [ options ] keydir

## DESCRIPTION
tinysshd is a minimalistic SSH server which implements only a subset of SSHv2 features.

tinysshd supports only secure cryptography (minimum 128-bit security, protected against cache-timing attacks)

tinysshd doesn't implement older crypto (such as RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES, RC4, ...)

tinysshd doesn't implement unsafe features (such as password or hostbased authentication)

tinysshd doesn't have features such: SSH1 protocol, compression, port forwarding, agent forwarding, X11 forwarding ...

tinysshd doesn't use dynamic memory allocation (no allocation failures, etc.)

## OPTIONS
-q

no error messages

-Q

print error messages (default)

-v

print extra information

-s

enable state-of-the-art crypto (default) signing - ssh-ed25519

key-exchange - curve25519-sha256

symmetric - chacha20-poly1305@openssh.com

-S

disable state-of-the-art crypto

-p

enable post-quantum crypto (default) signing - TODO (not implemented yet)

key-exchange - sntrup761x25519-sha512@openssh.com

symmetric - chacha20-poly1305@openssh.com

-P

disable post-quantum crypto

-l

use syslog instead of standard error output (useful for running from inetd)

-L

don't use syslog, use standard error output (default)

-x name=command

add subsystem command (e.g.: sftp=/usr/libexec/openssh/sftp-server)

-e command

execute the given command instead of spawning the shell (disables exec/subsystem channel requests)

keydir

directory containing TinySSH keys, typically /etc/tinyssh/sshkeydir

## AUTHORIZATION
tinysshd supports only public-key authorization via AuthorizedKeysFile ~/.ssh/authorized_keys. Each line of the file contains one key in format "keytype base64-encoded-key comment". tinyssh supports only "ssh-ed25519" keytype.

~/.ssh/authorized_keys example:

```
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILV5AGhGQ1QVXjBWhTKJP3vrqE3isL4ivisBailQ14gS comment
```

## RUNNING
TCPSERVER

tcpserver -HRDl0 0.0.0.0 22 /usr/sbin/tinysshd -v /etc/tinyssh/sshkeydir &

BUSYBOX

busybox tcpsvd 0 22 tinysshd -v /etc/tinyssh/sshkeydir &

INETD

/etc/inetd.conf: ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir

SYSTEMD

tinysshd.socket:

```
[Unit]
Description=TinySSH server socket
ConditionPathExists=!/etc/tinyssh/disable_tinysshd
[Socket]
ListenStream=22
Accept=yes
[Install]
WantedBy=sockets.target
```

tinysshd@.service:

```
[Unit]
Description=Tiny SSH server
After=network.target auditd.service
[Service]
ExecStartPre=-/usr/sbin/tinysshd-makekey -q /etc/tinyssh/sshkeydir
EnvironmentFile=-/etc/default/tinysshd
ExecStart=/usr/sbin/tinysshd ${TINYSSHDOPTS} -- /etc/tinyssh/sshkeydir
KillMode=process
SuccessExitStatus=111
StandardInput=socket
StandardError=journal
[Install]
WantedBy=multi-user.target
```

## SEE ALSO
tinysshd-makekey(8), tinysshd-printkey(8)

```
https://tinyssh.org/
```

branch: sisyphus


tinysshd-makekey

title: tinysshd-makekey(8)

summary: create TinySSH key\-directory

text:
# tinysshd-makekey(8)

## NAME
tinysshd-makekey - create TinySSH key-directory

## SYNOPSIS
tinysshd-makekey [ options ] keydir

## DESCRIPTION
tinysshd-makekey safely creates secret-keys and appropriate public-keys in directory keydir

## OPTIONS
-q

no error messages

-Q

print error messages (default)

keydir

directory for TinySSH keys, typically /etc/tinyssh/sshkeydir

## EXAMPLE
tinysshd-makekey /etc/tinyssh/sshkeydir

## SEE ALSO
tinysshd(8), tinysshd-printkey(8)

```
https://tinyssh.org/
```


tinysshd-printkey

title: tinysshd-printkey(8)

summary: print TinySSH public\-keys

text:
# tinysshd-printkey(8)

## NAME
tinysshd-printkey - print TinySSH public-keys

## SYNOPSIS
tinysshd-printkey keydir

## DESCRIPTION
tinysshd-printkey prints TinySSH public-keys in base64 format

## OPTIONS
keydir

directory containing TinySSH keys, typically /etc/tinyssh/sshkeydir

## EXAMPLE
tinysshd-printkey /etc/tinyssh/sshkeydir

## SEE ALSO
tinysshd(8), tinysshd-makekey(8)

```
https://tinyssh.org/
```


tinysshnoneauthd

title: tinysshnoneauthd(8)

text:
# tinysshnoneauthd(8)

## NAME
tinysshnoneauthd - Tiny SSH daemon with 'none' auth. enabled

## SYNOPSIS
tinysshnoneauthd [ options ] keydir

## DESCRIPTION
tinysshnoneauthd creates encrypted (but not authenticated) SSH connection. It's used to protect older protocols which uses e.g. telnet etc.

## OPTIONS
-q

no error messages

-Q

print error messages (default)

-v

print extra information

-l

use syslog instead of standard error output (useful for running from inetd)

-L

don't use syslog, use standard error output (default)

-e command

execute the given command instead of spawning the shell (disables exec/subsystem channel requests)

keydir

directory containing TinySSH keys, typically /etc/tinyssh/sshkeydir

## EXAMPLES
TCPSERVER

```
useradd tinysshnoneauth
mkdir -p /home/tinysshnoneauth/
tinysshd-makekey /home/tinysshnoneauth/sshkeydir
chown -R tinysshnoneauth /home/tinysshnoneauth/sshkeydir
envuidgid tinysshnoneauth tcpserver -UHRDl0 0 2222 /usr/sbin/tinysshnoneauthd -vv -e 'cat /etc/motd' /home/tinysshnoneauth/sshkeydir
```

## SEE ALSO
tinysshd(8), tinysshd-makekey(8), tinysshd-printkey(8)

```
https://tinyssh.org/
```


tlp

package: tlp

title: tlp(8)

text:
# tlp(8)

## NAME
tlp - apply laptop power saving settings

## SYNOPSIS
tlp command [parameters] [-- CONFIG_PARAM=value ... ]

## DESCRIPTION
tlp applies power saving settings manually and controls battery care features.

## COMMANDS

### Profile Management
start

Start tlp and apply the appropriate TLP profile. Also use to apply a changed configuration or to leave manual mode.

performance

Apply the performance profile. Parameters ending in _AC are used.

balanced

Apply the balanced profile. Parameters ending in _BAT are used.

power-saver

Apply the power-saver profile. Parameters ending in _SAV are used. If there is no _SAV parameter available for a feature, the _BAT parameter will be used instead.

ac

Apply profile for AC power and enter manual mode. Manual mode means that changes to the power source will be ignored until the next reboot or tlp start is run to resume automatic mode.

bat

Apply profile for battery power and enter manual mode. Manual mode means that changes to the power source will be ignored until the next reboot or tlp start is run to resume automatic mode.

### Battery Care
setcharge [start_threshold stop_threshold] [battery]

Change battery charge thresholds temporarily. If your hardware supports only a stop threshold, set the start value to 0. Configured charge thresholds will be restored at the next boot or by using tlp setcharge again but without the threshold arguments.

fullcharge [battery]

Charge battery to full capacity. This is done by applying vendor presets to the charge thresholds temporarily. Configured charge thresholds will be restored at the next boot or by using tlp setcharge without the threshold arguments.

chargeonce [battery]

Charge battery to the stop charge threshold once. This is done by temporarily lifting the start charge threshold. The configured start charge threshold will be restored at the next boot or by using tlp setcharge without the threshold arguments.

discharge [battery] [target_charge_level]

Force a complete or partial discharge of the battery while on AC power.

recalibrate [battery]

Perform a battery recalibration while on AC power: completely discharge the battery and recharge to 100%. The latter is done by temporarily applying vendor presets to the thresholds. Configured thresholds will be restored at the next boot or by using tlp setcharge.

### Device Power Management
usb

Enable autosuspend for all USB devices except those excluded by default or via configuration.

bayoff

Turn off optical drive in UltraBay/MediaBay. The drive may be re-enabled by pulling the eject lever or pushing the media eject button on newer models.

### Information
diskid

Print disk ids for configured drives.

--version

Print TLP version.

### Configuration
-- CONFIG_PARAM="value" ...

Append configuration parameters to a command. These temporarily override the system configuration during execution of that command only and are not kept afterwards. Disclaimer: this feature exists for the sole purpose of test automation during TLP's development. It is provided as is and there is no support whatsoever.

## AUTHORIZATION
Almost all tlp commands require root privileges. To change the TLP profile without root, you may use tplctl.

## BATTERY CARE
Availability of the above battery care commands and the possible charge threshold values always depends on laptop vendor or brand, Linux kernel version and TLP version. Check for actual availability, threshold ranges and battery names with tlp-stat -b. Follow the link in the SEE ALSO section for details.

For laptops with two batteries, the secondary battery must be specified as a command parameter in order to select it. In many cases the main battery will be BAT0, the secondary battery BAT1. When in doubt, the output of tlp-stat -b, which lists all batteries, can help.

## POWER PROFILES
performance

Optimizes the system for maximum performance at the cost of higher power consumption. Recommended for demanding workloads. TLP default when running on AC power.

balanced

Provides a balance between performance and power consumption. Suitable for general-purpose use. TLP default when running on battery power.

power-saver

Optimizes the system for maximum battery life at the cost of reduced performance. Recommended for maximizing battery runtime.

## EXAMPLES
Change thresholds of the main battery to 70 / 90% temporarily:

```
tlp setcharge 70 90

```

Charge the secondary battery to full capacity:

```
tlp fullcharge BAT1

```

Recalibrate the main battery:

```
tlp recalibrate

```

## FILES
/etc/tlp.conf

System-wide user configuration file, uncomment parameters here to override default settings and customization files below.

/etc/tlp.d/*.conf

System-wide drop-in customization files, overriding defaults below.

/usr/share/tlp/defaults.conf

Intrinsic default settings. DO NOT EDIT this file, instead use one of the above alternatives.

/run/tlp/run.conf

Effective settings consolidated from all above files. DO NOT CHANGE this file, it is for reference only and regenerated on every invocation of TLP.

## EXIT STATUS
On success, 0 is returned, a non-zero failure code otherwise.

## SEE ALSO
tlpctl(1), tlp-stat(8), bluetooth(1), nfc(1), wifi(1), wwan(1).

- TLP documentation: <https://linrunner.de/tlp>

- Battery care specifics: <https://linrunner.de/tlp/settings/bc-vendors.html>

## BUGS
Report bugs to: <https://github.com/linrunner/TLP/issues>.

## AUTHOR
(c) 2026 Thomas Koch <linrunner at gmx.net>


tlp-pd

title: tlp-pd(8)

text:
# tlp-pd(8)

## NAME
tlp-pd - TLP Profiles Daemon

## SYNOPSIS
tlp-pd [options]

## DESCRIPTION
tlp-pd implements the D-Bus interface org.freedesktop.UPower.PowerProfile which lets desktop environments show a profile switch. TLP is used as the backend to apply these profiles.

## OPTIONS
-D, --debug

Write debug information to the system log. You can view it using tlp-stat --trace.

## SEE ALSO
tlp(8),tlp-pd.service(8).

## BUGS
Report bugs to: <https://github.com/linrunner/TLP/issues>.

## AUTHOR
(c) 2026 Thomas Koch <linrunner at gmx.net>


tlp-pd.service

title: tlp-pd.service(8)

text:
# tlp-pd.service(8)

## NAME
tlp-pd.service - starts the TLP Profiles Daemon (tlp-pd)

## SYNOPSIS
tlp-pd.service

## DESCRIPTION
tlp-pd implements the D-Bus interface org.freedesktop.UPower.PowerProfile which lets desktop environments show a profile switch. TLP is used as the backend to apply these profiles.

## SEE ALSO
tlp(8),tlp-pd(8)

## BUGS
Report bugs to: <https://github.com/linrunner/TLP/issues>.

## AUTHOR
(c) 2026 Thomas Koch <linrunner at gmx.net>


tlp-stat

title: tlp-stat(8)

text:
# tlp-stat(8)

## NAME
tlp-stat - view power saving status

## SYNOPSIS
tlp-stat [options] [-- CONFIG_PARAM=value ... ]

## DESCRIPTION
View configuration, system information, kernel power saving tunables and battery data. Invocation without options shows all information categories.

## OPTIONS

### System Operation
-s, --system

View system information and TLP status.

-m, --mode

Print currently active TLP profile.

### Configuration
-c, --config

View active configuration.

--cdiff

View the difference between defaults and user configuration.

-- CONFIG_PARAM=value ...

Append configuration parameters to a command. These temporarily override the system configuration during execution of that command only and are not kept afterwards. Disclaimer: this feature exists for the sole purpose of test automation during TLP's development. It is provided as is and there is no support whatsoever.

### Power Saving
-d, --disk

View disk device tunables.

-e, --pcie

View PCIe device tunables. Add -v to see device runtime status.

-g, --graphics

View graphics card tunables. Add -v to see power state and clocks of AMD GPUs.

-p, --processor

View processor tunables. For clarity the standard output shows only cpu0. Add -v to see all cpus. Add -q to see cpu driver state only.

-r, --rfkill

View radio device states and tunables. Add -v to see NetworkManager and rfkill details.

-u, --usb

View USB device tunables. Add -v to see device runtime status.

### Battery Care
-b, --battery

View battery data and battery care features supported by your hardware. Add -v to see battery voltages (if available).

### Information
-q, --quiet

Omit version header and show less information in the processor category.

-t, --temp

View temperatures and fan speed. Add -v to see all individual sensors.

-v, --verbose

Show more information in the battery, graphics, PCIe, processor, temperature, wireless and USB categories.

--version

Print TLP version.

### Diagnostics and Debugging
--pd-diag

View tlp-pd diagnostics.

-P, --pev

Monitor power supply udev events.

--psup

View power supply diagnostics.

-T, --trace

View trace output for tlp and tlp-pd.

--trace-nm

View trace output correlated with NetworkManager journal.

--udev

Check if udev rules for power source changes and connecting USB devices are active.

-w, --warn

View warnings about SATA disks.

## AUTHORIZATION
Many (but not all) tlp-stat commands require root privileges.

## FILES
/etc/tlp.conf

System-wide user configuration file, uncomment parameters here to override default settings and customization files below.

/etc/tlp.d/*.conf

System-wide drop-in customization files, overriding defaults below.

/usr/share/tlp/defaults.conf

Intrinsic default settings. DO NOT EDIT this file, instead use one of the above alternatives.

/run/tlp/run.conf

Effective settings consolidated from all above files. DO NOT CHANGE this file, it is for reference only and regenerated on every invocation of TLP.

## SEE ALSO
tlp(8), tlpctl(8).

- TLP documentation: <https://linrunner.de/tlp>

- Battery care specifics: <https://linrunner.de/tlp/settings/bc-vendors.html>

## BUGS
Report bugs to: <https://github.com/linrunner/TLP/issues>.

## AUTHOR
(c) 2026 Thomas Koch <linrunner at gmx.net>


tlp.service

title: tlp.service(8)

text:
# tlp.service(8)

## NAME
tlp.service - Initialize power saving at boot and cleanup upon shutdown

## SYNOPSIS
tlp.service

## DESCRIPTION
tlp.service executes the following tasks:

1.

System boot-up: switch or restore radio states, apply power saving settings and charge thresholds.

2.

System shutdown: save radio states and cleanup.

## FILES
/lib/systemd/system-sleep/tlp

Applies power saving settings upon system suspend and resume.

## SEE ALSO
tlp(8).

## NOTES
Do not employ tlp.service to refresh power saving settings after a configuration change. Use tlp start instead.

## SEE ALSO
tlp(8).

## BUGS
Report bugs to: <https://github.com/linrunner/TLP/issues>.

## AUTHOR
(c) 2026 Thomas Koch <linrunner at gmx.net>


tlp-rdw

package: tlp-rdw

title: tlp-rdw(8)

text:
# tlp-rdw(8)

## NAME
tlp-rdw - disable Radio Device Wizard temporarily (until reboot).

## SYNOPSIS
tlp-rdw [command]

## COMMANDS
disable

Disable RDW actions.

enable

Enable RDW actions.

<none>

Show RDW state.

--version

Print TLP version.

## AUTHORIZATION
The tlp-rdw command requires root privileges for enabling/disabling actions.

## SEE ALSO
tlp(8).

## BUGS
Report bugs to: <https://github.com/linrunner/TLP/issues>.

## AUTHOR
(c) 2026 Thomas Koch <linrunner at gmx.net>


pbsnodes

package: torque-client

title: pbsnodes(8)

summary: pbs node manipulation

text:
# pbsnodes(8)

## NAME
pbsnodes - pbs node manipulation

## SYNOPSIS
pbsnodes [-{a|x}] [-q] [-s server] [node|:property]

pbsnodes -l [-q] [-s server] [state] [nodename|:property ...]

pbsnodes [-{c|d|o|r}] [-q] [-s server] [-n] [-N "note"] [-A "append note"] [node|:property]

## DESCRIPTION
The pbsnodes command is used to mark nodes down, free or offline. It can also be used to list nodes and their state. Node information is obtained by sending a request to the PBS job server. Sets of nodes can be operated on at once by specifying a node property prefixed by a colon.

Nodes do not exist in a single state, but actually have a set of states. For example, a node can be simultaneously "busy" and "offline". The "free" state is the absence of all other states and so is never combined with other states.

In order to execute pbsnodes with other than the -a or -l options, the user must have PBS Manager or Operator privilege.

## OPTIONS
-A

Append a note attribute to existing note attributes. The -N note option will overwrite exiting note attributes. -A will append a new note attribute to the existing note attributes delimited by a ',' and a space.

-a

All attributes of a node or all nodes are listed. This is the default if no flag is given.

-x

Same as -a, but the output has an XML-like format.

-c

Clear OFFLINE from listed nodes.

-d

Print MOM diagnosis on the listed nodes. Not yet implemented. Use momctl instead.

-o

Add the OFFLINE state. This is different from being marked DOWN. OFFLINE prevents new jobs from running on the specified nodes. This gives the administrator a tool to hold a node out of service without changing anything else. The OFFLINE state will never be set or cleared automatically by pbs_server; it is purely for the manager or operator.

-p

Purge the node record from pbs_server. Not yet implemented.

-r

Reset the listed nodes by clearing OFFLINE and adding DOWN state. pbs_server will ping the node and, if they communicate correctly, free the node.

-l

List node names and their state. If no state is specified, only nodes in the DOWN, OFFLINE, or UNKNOWN states are listed. Specifying a state string acts as an output filter. Valid state strings are "free", "offline", "down", "reserve", "job-exclusive", "job-sharing", "busy", "time-shared", or "state-unknown".

-N

Specify a "note" attribute. This allows an administrator to add an arbitrary annotation to the listed nodes. To clear a note, use -N "" or -N n.

-n

Show the "note" attribute for nodes that are DOWN, OFFLINE, or UNKNOWN. This option requires -l.

-q

Supress all error messages.

-s

Specify the PBS server's hostname or IP address.

## SEE ALSO
pbs_server(8B) and the PBS External Reference Specification


qdisable

title: qdisable(8)

summary: disable input to a pbs destination

text:
# qdisable(8)

## NAME
qdisable - disable input to a pbs destination

## SYNOPSIS
qdisable destination ...

## DESCRIPTION
The qdisable command directs that a destination should no longer accept batch jobs. If the command is accepted, the destination will no longer accept Queue Job requests which specified the disabled queue. Jobs which already reside in the queue will continue to be processed. This allows a queue to be "drained."

In order to execute qdisable, the user must have PBS Operation or Manager privilege.

## OPERANDS
The qdisable command accepts one or more destination operands. The operands are one of three forms:

queue

@server

queue@server

If queue is specified, the request is to disable that queue at the default server. If the @server form is given, the request is to disable all the queues at that server. If a full destination identifier, queue@server, is given, the request is to disable the named queue at the named server.

## STANDARD ERROR
The qdisable command will write a diagnostic message to standard error for each error occurrence.

## EXIT STATUS
Upon successful processing of all the operands presented to the qdisable command, the exit status will be a value of zero.

If the qdisable command fails to process any operand, the command exits with a value greater than zero.

## SEE ALSO
pbs_server(8B), qmgr(1B), and qenable(8B)


qenable

title: qenable(8)

summary: enable input to a pbs destination

text:
# qenable(8)

## NAME
qenable - enable input to a pbs destination

## SYNOPSIS
qenable destination ...

## DESCRIPTION
The qenable command directs that a destination should accept batch jobs.

The qenable command sends a Manage request to the batch server specified by destination. If the command is accepted, the destination will accept Queue Job requests which specified the queue.

In order to execute qenable, the user must have PBS Operation or Manager privilege.

## OPERANDS
The qenable command accepts one or more destination operands. The operands are one of three forms:

queue

@server

queue@server

If queue is specified, the request is to enable that queue at the default server. If the @server form is given, the request is to enable all the queues at that server. If a full destination identifier, queue@server, is given, the request is to enable the named queue at the named server.

## STANDARD ERROR
The qenable command will write a diagnostic message to standard error for each error occurrence.

## EXIT STATUS
Upon successful processing of all the operands presented to the qenable command, the exit status will be a value of zero.

If the qenable command fails to process any operand, the command exits with a value greater than zero.

## SEE ALSO
pbs_server(8B), qdisable(8B), and qmgr(1B)


qrun

title: qrun(8)

summary: run a pbs batch job

text:
# qrun(8)

## NAME
qrun - run a pbs batch job

## SYNOPSIS
qrun [-a] [-H host] job_identifier ...

## DESCRIPTION
The qrun command is used to force a batch server to initiate the execution of a batch job. The job is run regardless of scheduling position, resource requirements, or state.

In order to execute qrun, the user must have PBS Operation or Manager privilege.

## OPTIONS
-a

Specifies the job(s) is to be run asynchronously.

-H host

Specifies the host within the cluster on which the job(s) are to be run. The host argument is the name of a host that is a member of the cluster of hosts managed by the server. If the option is not specified, the server will select the "worst possible" host on which to execute the job.

## OPERANDS
The qrun command accepts one or more job_identifier operands of the form:

sequence_number[.server_name][@server]

## STANDARD ERROR
The qrun command will write a diagnostic message to standard error for each error occurrence.

## EXIT STATUS
Upon successful processing of all the operands presented to the qrun command, the exit status will be a value of zero.

If the qrun command fails to process any operand, the command exits with a value greater than zero.

## SEE ALSO
pbs_server(8B), pbs_sched(8B), qmgr(1B)


qstart

title: qstart(8)

text:
# qstart(8)

## NAME
qstart - start pbs batch job processing at a destination

## SYNOPSIS
qstart destination ...

## DESCRIPTION
The qstart command directs that a destination should process batch jobs. If the destination is an execution queue, the server will begin to schedule jobs that reside in the queue for execution. If the destination is a routing queue, the server will begin to route jobs from that queue.

In order to execute qstart, the user must have PBS Operation or Manager privilege.

## OPERANDS
The qstart command accepts one or more destination operands. The operands are one of three forms:

queue

@server

queue@server

If queue is specified, the request is to start that queue at the default server. If the @server form is given, the request is to start all queues at that server. If a full destination identifier, queue@server, is given, the request is to start the named queue at the named server.

## STANDARD ERROR
The qstart command will write a diagnostic message to standard error for each error occurrence.

## EXIT STATUS
Upon successful processing of all the operands presented to the qstart command, the exit status will be a value of zero.

If the qstart command fails to process any operand, the command exits with a value greater than zero.

## SEE ALSO
pbs_server(8B), qstop(8B), and qmgr(1B)


qstop

title: qstop(8)

text:
# qstop(8)

## NAME
qstop - stop pbs batch job processing at a destination

## SYNOPSIS
qstop destination ...

## DESCRIPTION
The qstop command directs that a destination should stop processing batch jobs. If the destination is a execution queue, the server will cease scheduling jobs that reside in the queue for execution. If the destination is a routing queue, the server will cease routing jobs from that queue.

In order to execute qstop, the user must have PBS Operation or Manager privilege.

## OPERANDS
The qstop command accepts one or more destination operands. The operands are one of three forms:

queue

@server

queue@server

If queue is specified, the request is to stop that queue at the default server. If the @server form is given, the request is to stop all the queues at that server. If a full destination identifier, queue@server, is given, the request is to stop the named queue at the named server.

## STANDARD ERROR
The qstop command will write a diagnostic message to standard error for each error occurrence.

## EXIT STATUS
Upon successful processing of all the operands presented to the qstop command, the exit status will be a value of zero.

If the qstop command fails to process any operand, the command exits with a value greater than zero.

## SEE ALSO
pbs_server(8B), qstart(8B), and qmgr(1B)


qterm

title: qterm(8)

text:
# qterm(8)

## NAME
qterm - terminate processing by a PBS batch server

## SYNOPSIS
qterm [-t type] [server...]

## DESCRIPTION
The qterm command terminates a PBS batch server. When a server receives a terminate command, the server will go into a terminating state. While in this state, the server will not allow new jobs to be started or enqueued. By default, qterm will request a "quick" shutdown of the PBS server. Other ways of shutting down the server (specified with the -t argument), and their impact on running jobs, are described below. The qterm command will not exit until the server has completed its shutdown procedure.

In order to execute qterm, the user must have PBS Operation or Manager privilege.

## OPTIONS
-t type

Specifies the type of shut down. The type are:

quick

This option is used when you wish that running jobs be left running when the server shuts down. The server will cleanly shutdown and can be restarted when desired. Upon restart of the server, jobs that continue to run are shown as running; jobs that terminated during the server's absence will be placed into the exiting state.

## OPERANDS
The server operand specifies which servers are to shutdown. If no servers are given, then the default server will be terminated.

## STANDARD ERROR
The qterm command will write a diagnostic message to standard error for each error occurrence.

## EXIT STATUS
Upon successful processing of all the operands presented to the qterm command, the exit status will be a value of zero.

If the qterm command fails to process any operand, the command exits with a value greater than zero.

## SEE ALSO
pbs_server(8B), qmgr(1B), pbs_resources_aix4(7B), pbs_resources_irix5(7B), pbs_resources_sp2(7B), pbs_resources_sunos4(7B), and pbs_resources_unicos8(7B)


package: torque-mom

title: pbs_mom(8)

summary: start a pbs batch execution mini-server

text:
# pbs_mom(8)

## NAME
pbs_mom - start a pbs batch execution mini-server

## SYNOPSIS
pbs_mom [-a alarm] [-C chkdirectory] [-c config] [-D] [-d directory] [-F] [-h help] [-H hostname] [-L logfile] [-M MOMport] [-R RPPport] [-p|-q|-r] [-w] [-x]

SH DESCRIPTION The pbs_mom command starts the operation of a batch Machine Oriented Mini-server, MOM, on the local host. Typically, this command will be in a local boot file such as /etc/rc.local . To insure that the pbs_mom command is not runnable by the general user community, the server will only execute if its real and effective uid is zero.

One function of pbs_mom is to place jobs into execution as directed by the server, establish resource usage limits, monitor the job's usage, and notify the server when the job completes. If they exist, pbs_mom will execute a prologue script before executing a job and an epilogue script after executing the job. The next function of pbs_mom is to respond to resource monitor requests. This was done by a separate process in previous versions of PBS but has now been combined into one process. The resource monitor function is provided mainly for the PBS scheduler. It provides information about the status of running jobs, memory available etc. The next function of pbs_mom is to respond to task manager requests. This involves communicating with running tasks over a tcp socket as well as communicating with other MOMs within a job (aka a "sisterhood").

Pbs_mom will record a diagnostic message in a log file for any error occurrence. The log files are maintained in the mom_logs directory below the home directory of the server. If the log file cannot be opened, the diagnostic message is written to the system console.

## OPTIONS
-A alias

Used with -m (multi-mom option) to give the alias name of this instance of pbs_mom

-a alarm

Specifies the alarm timeout in seconds for computing a resource. Every time a resource request is processed, an alarm is set for the given amount of time. If the request has not completed before the given time, an alarm signal is generated. The default is 5 seconds.

-C chkdirectory

Specifies the path of the directory used to hold checkpoint files. [Currently this is only valid on Cray systems.] The default directory is PBS_HOME/spool/checkpoint, see the -d option. The directory specified with the -C option must be owned by root and accessible (rwx) only by root to protect the security of the checkpoint files.

-c config

Specifies an alternative configuration file, see description below. If this is a relative file name it will be relative to PBS_HOME/mom_priv, see the -d option. If the specified file cannot be opened, pbs_mom will abort. If the -c option is not supplied, pbs_mom will attempt to open the default

configuration file "config" in PBS_HOME/mom_priv. If this file is not present, pbs_mom will log the fact and continue.

-h help

Displays the help/usage message.

-H hostname

Sets the MOM's hostname. This can be useful on multi-homed networks.

-D

Debug mode. Do not fork.

-d directory

Specifies the path of the directory which is the home of the servers working files, PBS_HOME. This option is typically used along with -M when debugging MOM. The default directory is given by $PBS_SERVER_HOME which is typically /usr/spool/PBS.

-F

Do not fork. Use when running under systemd.

-L logfile

Specifies an absolute path name for use as the log file. If not specified, MOM will open a file named for the current date in the PBS_HOME/mom_logs directory, see the -d option.

-m

Directs the MOM to start in multi-mom mode. In addition to using -m the -M, -R and -A options need to be used to properly start a MOM in multi-mom mode. For example pbs_mom -m -M 30002 -R 30003 -A alias-host will start pbs_mom with the service port on port 30002, the manager port at 30003 and with the name alias-host.

-M port

Specifies the port number on which the mini-server (MOM) will listen for batch requests.

-R port

Specifies the port number on which the mini-server (MOM) will listen for resource monitor requests, task manager requests and inter-MOM messages.

-p

(Default after version 2.4.0) (Preserve running jobs) -- Specifies the impact on jobs which were in execution when the mini-server shut-down. The -p option tries to preserve any running jobs when the MOM restarts. The new mini-server will not be the parent of any running jobs, MOM has lost control of her offspring (not a new situation for a mother). The MOM will allow the jobs to continue to run and monitor them indirectly via polling. All recovered jobs will report an exit code of 0 when they are complete. The -p option is mutually exclusive with the -r, -P and -q options.

-P

(Terminate all jobs and remove them from the queue) -- Specifies the impact on jobs which were in execution when the mini-server shut-down. With the -P option, it is assumed that either the entire system has been restarted or the MOM has been down so long that it can no longer guarantee that the pid of any running process is the same as the recorded job process pid of a recovering job. Unlike the -p option no attempt is made to try and preserve or recover running jobs. All jobs are terminated and removed from the queue. The -q option is mutually exclusive with the -p, -q and -r options.

-q

(Requeue all jobs - This is the default behavior in versions prior to 2.4.0) -- Specifies the impact on jobs which were in execution when the mini-servershut-down. Do not terminate running processes. With the -q option, it is assumed that either the entire system has been restarted or the MOM has been down so long that it can no longer guarantee that the pid of any running process is the same as the recorded job process pid of a recovering job. No attempt is made to kill job processes. The MOM will mark the jobs as terminated and notify the batch server which owns the job. Re-runnable jobs will be requeued. The -q option is mutually exclusive with the -p, -P and -r options.

-r

(Terminate running processes and requeue all jobs) -- Specifies the impact on jobs which were in execution when the mini-server shut-down. With the -r option, MOM will kill any processes belonging to running jobs, mark the jobs as terminated and notify the batch server that owns the job. Re-runnable jobs are reset to a queued state so they can be run again. The -r option is mutually exclusive with the -p, -P and -q options.

If the -r option is used following a reboot, process IDs (pids) may be reused and MOM may kill a process that is not a batch session.

-S port

Specifies the port number on which the pbs_server is listening for requests. If pbs_server is started with a -p option, pbs_mom will need to use the -S option and match the port value which was used to start pbs_server.

-w

When started with -w, pbs_moms wait until they get their MOM hierarchy file from pbs_server to send their first update, or until 10 minutes pass. This reduces network traffic on startup and can bring up clusters faster.

-x

Disables the check for privileged port resource monitor connections. This is used mainly for testing since the privileged port is the only mechanism used to prevent any ordinary user from connecting.

## CONFIGURATION FILE
The configuration file may be specified on the command line at program start with the -c flag. The use of this file is to provide several types of run time information to pbs_mom: static resource names and values, external resources provided by a program to be run on request via a shell escape, and values to pass to internal set up functions at initialization (and re-initialization).

Each item type is on a single line with the component parts separated by white space. If the line starts with a hash mark (pound sign, #), the line is considered to be a comment and is skipped.

Static Resources

For static resource names and values, the configuration file contains a list of resource names/values pairs, one pair per line and separated by white space. An Example of static resource names and values could be the number of tape drives of different types and could be specified by

tape3480 4

tape3420 2

tapedat 1

tape8mm 1

Shell Commands

If the first character of the value is an exclamation mark (!), the entire rest of the line is saved to be executed through the services of the system(3) standard library routine.

The shell escape provides a means for the resource monitor to yield arbitrary information to the scheduler. Parameter substitution is done such that the value of any qualifier sent with the query, as explained below, replaces a token with a percent sign (%) followed by the name of the qualifier. For example, here is a configuration file line which gives a resource name of "escape":

escape !echo %xxx %yyy

If a query for "escape" is sent with no qualifiers, the command executed would be "echo %xxx %yyy". If one qualifier is sent, "escape[xxx=hi there]", the command executed would be "echo hi there %yyy". If two qualifiers are sent, "escape[xxx=hi][yyy=there]", the command executed would be "echo hi there". If a qualifier is sent with no matching token in the command line, "escape[zzz=snafu]", an error is reported.

size[fs=<FS>]

Specifies that the available and configured disk space in the <FS> filesystem is to be reported to the pbs_server and scheduler. NOTE: To request disk space on a per job basis, specify the file resource as in 'qsub -l nodes=1,file=1000kb' For example, the available and configured disk space in the /localscratch filesystem will be reported:

size[fs=/localscratch]

Initialization Value

An initialization value directive has a name which starts with a dollar sign ($) and must be known to MOM via an internal table. The entries in this table now are:

auto_ideal_load

if jobs are running, sets idea_load based on a simple expression. The expressions start with the variable 't' (total assigned CPUs) or 'c' (existing CPUs), an operator (+ - / *), and followed by a float constant.

$auto_ideal_load t-0.2

auto_max_load

if jobs are running, sets max_load based on a simple expression. The expressions start with the variable 't' (total assigned CPUs) or 'c' (existing CPUs), an operator (+ - / *), and followed by a float constant.

cputmult

which sets a factor used to adjust cpu time used by a job. This is provided to allow adjustment of time charged and limits enforced where the job might run on systems with different cpu performance. If Mom's system is faster than the reference system, set cputmult to a decimal value greater than 1.0. If Mom's system is slower, set cputmult to a value between 1.0 and 0.0. For example:

$cputmult 1.5

$cputmult 0.75

configversion

specifies the version of the config file data, a string.

check_poll_time

specifies the MOM interval in seconds. MOM checks each job for updated resource usages, exited processes, over-limit conditions, etc. once per interval. This value should be equal or lower to pbs_server's job_stat_rate. High values result in stale information reported to pbs_server. Low values result in increased system usage by MOM. Default is 45 seconds.

down_on_error

causes MOM to report itself as state "down" to pbs_server in the event of a failed health check. This feature is EXPERIMENTAL and likely to be removed in the future. See HEALTH CHECK below.

enablemomrestart

enable automatic restarts of MOM. If enabled, MOM will check if its binary has been updated and restart itself at a safe point when no jobs are running; thus making upgrades easier. The check is made by comparing the mtime of the pbs_mom executable. Command-line args, the process name, and the PATH env variable are preserved across restarts. It is recommended that this not be enabled in the config file, but enabled when desired with momctl (see RESOURCES for more information.)

ideal_load

ideal processor load. Represents a low water mark for the load average. Nodes that are currently busy will consider itself free after falling below ideal_load.

igncput

Ignore cpu time violations on this mom, meaning jobs will not be cancelled due to exceeding their limits for cpu time.

ignmem

Ignore memory violations on this mom, meaning jobs will not be cancelled due to exceeding their memory limits.

ignvmem

If set to true, then pbs_mom will ignore vmem/pvmem limit enforcement.

ignwalltime

If set to true, then pbs_mom will ignore walltime limit enforcement.

job_output_file_mask

Specifies a mask for creating job output and error files. Values can be specified in base 8, 10, or 16; leading 0 implies octal and leading 0x or 0X hexadecimal. A value of "userdefault" will use the user's default umask. $job_output_file_mask 027

log_directory

Changes the log directory. Default is $TORQUEHOME/mom_logs/. $TORQUEHOME default is /var/spool/torque/ but can be changed in the ./configure script. The value is a string and should be the full path to the desired mom log directory. $log_directory /opt/torque/mom_logs/

logevent

which sets the mask that determines which event types are logged by pbs_mom. For example:

$logevent 0x1fff

$logevent 255

The first example would set the log event mask to 0x1ff (511) which enables logging of all events including debug events. The second example would set the mask to 0x0ff (255) which enables all events except debug events.

log_file_suffix

Optional suffix to append to log file names. If %h is the suffix, pbs_mom appends the hostname for where the log files are stored if it knows it, otherwise it will append the hostname where the mom is running. $log_file_suffix tom = 20100223.tom

log_keep_days

Specifies how many days to keep log files. pbs_mom deletes log files older than the specified number of days. If not specified, pbs_mom won't delete log files based on their age.

loglevel

specifies the verbosity of logging with higher numbers specifying more verbose logging. Values may range between 0 and 7.

log_file_max_size

If this is set to a value > 0 then pbs_mom will roll the current log file to log-file-name.1 when its size is greater than or equal to the value of log_file_max_size. This value is interpreted as kilobytes.

log_file_roll_depth

If this is set to a value >=1 and log_file_max_size is set then pbs_mom will continue rolling the log files to log-file-name.log_file_roll_depth.

max_load

maximum processor load. Nodes over this load average are considered busy (see ideal_load above).

memory_pressure_threshold

The option is only available, if pbs_mom is enabled to use cpusets. If set to a value > 0, a job gets killed if its memory pressure exceeds this value, and if $memory_pressure_duration is set. The default is 0 (memory pressure recording is off).

See cpuset(7) for more information about memory pressure.

memory_pressure_duration

The option is only available, if pbs_mom is enabled to use cpusets. Specifies the number of subsequent MOM intervals a job's memory pressure must be above $memory_pressure_threshold to get killed. The default is 0 (jobs are never killed due to memory pressure). set

See cpuset(7) for more information about memory pressure.

node_check_script

specifies the fully qualified pathname of the health check script to run (see HEALTH CHECK for more information).

node_check_interval

specifies when to run the MOM health check. The check can be either periodic, event-driver, or both. The value starts with an integer specifying the number of MOM intervals between subsequent executions of the specified health check. After the integer is an optional comma-separated list of event names. Currently supported are "jobstart" and "jobend". This value defaults to 1 with no events indicating the check is run every MOM interval. (see HEALTH CHECK for more information)

$node_check_interval 0 #Disabled.

$node_check_interval 0,jobstart #Only runs at job starts

$node_check_interval 10,jobstart,jobend

nodefile_suffix

Specifies the suffix to append to a host names to denote the data channel network adapter in a multihomed compute node. $nodefile_suffix i With the suffix of 'i' and the control channel adapter with the name node01, the data channel would have a hostname of node01i.

nospool_dir_list

If the job's output file should be in one of the paths specified here, then it will be spooled directly in that directory instead of the normal spool directory.

Specified in the format path1, path2, etc. $nospool_dir_list/home/mike/*,/var/tmp/spool/

pbsclient

which causes a host name to be added to the list of hosts which will be allowed to connect to MOM as long as they are using a privilaged port for the purposes of resource monitor requests. For example, here are two configuration file lines which will allow the hosts "fred" and "wilma" to connect:

$pbsclient fred

$pbsclient wilma

Two host name are always allowed to connection to pbs_mom, "localhost" and the name returned to pbs_mom by the system call gethostname(). These names need not be specified in the configuration file. The hosts listed as "clients" can issue Resource Monitor (RM) requests. Other MOM nodes and servers do not need to be listed as clients.

pbsserver

which defines hostnames running pbs_server that will be allowed to submit jobs, issue Resource Monitor (RM) requests, and get status updates. MOM will continually attempt to contact all server hosts for node status and state updates. Like $PBS_SERVER_HOME/server_name, the hostname may be followed by a colon and a port number. This parameter replaces the oft-confused $clienthost parameter from TORQUE 2.0.0p0 and earlier. Note that the hostname in $PBS_SERVER_HOME/server_name is used if no $pbsserver parameters are found

prologalarm

Specifies maximum duration (in seconds) which the MOM will wait for the job prolog or job job epilog to complete. This parameter default to 300 seconds (5 minutes)

rcpcmd

Specify the the full path and argument to be used for remote file copies. This overrides the compile-time default found in configure. This must contain 2 words: the full path to the command and the switches. The copy command must be able to recursively copy files to the remote host and accept arguments of the form "user@host:files" For example:

$rcpcmd /usr/bin/rcp -rp

$rcpcmd /usr/bin/scp -rpB

restricted

which causes a host name to be added to the list of hosts which will be allowed to connect to MOM without needing to use a privilaged port. These names allow for wildcard matching. For example, here is a configuration file line which will allow queries from any host from the domain "ibm.com".

$restricted *.ibm.com

The restriction which applies to these connections is that only internal queries may be made. No resources from a config file will be found. This is to prevent any shell commands from being run by a non-root process.

This parameter is generally not required except for some versions of OSX.

remote_checkpoint_dirs

Specifies what server checkpoint directories are remotely mounted. This directive is used to tell the MOM which directories are shared with the server. Using remote checkpoint directories eliminates the need to copy the checkpoint files back and forth between the MOM and the server. This parameter is available in 2.4.1 and later.

$remote_checkpoint_dirs /var/spool/torque/checkpoint

remote_reconfig

Enables the ability to remotely reconfigure pbs_mom with a new config file. Default is disabled. This parameter accepts various forms of true, yes, and 1.

source_login_batch

Specifies whether or not mom will source the /etc/profile, etc. type files for batch jobs. Parameter accepts various forms of true, false, yes, no, 1 and 0. Default is True.

source_login_interactive

Specifies whether or not mom will source the /etc/profile, etc. type files for interactive jobs. Parameter accepts various forms of true, false, yes, no, 1 and 0. Default is True.

spool_as_final_name

If set to true, jobs will spool directly as their output files, with no intermediate locations or steps. This is mostly useful for shared filesystems with fast writing capability.

status_update_time

Specifies (in seconds) how often MOM updates its status information to pbs_server. This value should correlate with the server's scheduling interval. High values increase the load of pbs_server and the network. Low values cause pbs_server to report stale information. Default is 45 seconds.

tmpdir

Sets the directory basename for a per-job temporary directory. Before job launch, MOM will append the jobid to the tmpdir basename and create the directory. After the job exit, MOM will recursively delete it. The env variable TMPDIR will be set for all pro/epilog scripts, the job script, and TM tasks.

Directory creation and removal is done as the job owner and group, so the owner must have write permission to create the directory. If the directory already exists and is owned by the job owner, it will not be deleted after the job. If the directory already exists and is NOT owned by the job owner, the job start will be rejected.

timeout

Specifies the number of seconds before TCP messages will time out. TCP messages include job obituaries, and TM requests if RPP is disabled. Default is 60 seconds.

usecp

specifies which directories should be staged with cp instead of rcp/scp. If a shared filesystem is available on all hosts in a cluster, this directive is used to make these filesystems known to MOM. For example, if /home is NFS mounted on all nodes in a cluster:

$usecp *:/home /home

varattr

This is similar to a shell escape above, but includes a TTL. The command will only be run every TTL seconds. A TTL of -1 will cause the command to be executed only once. A TTL of 0 will cause the command to be run everytime varattr is requested. This parameter may be used multiple times, but all output will be grouped into a single "varattr" attribute in the request and status output. The command should output data in the form of varattrname=va1ue1[+value2]...

$varattr 3600 /path/to/script [<ARGS>]...

use_smt

This option is only available, if pbs_mom is enabled to use cpusets. It has only effect, if there are more that one logical processor per physical core in the system (simultaneous multithreading or hyperthreading is enabled via BIOS settings). If set to true, all logical processors of allocated cores are added to the cpuset of a job. If set to false, only the first logical processor per allocated core is contained in the cpuset of a job. The default is true.

wallmult

which sets a factor used to adjust wall time usage by to job to a common reference system. The factor is used for walltime calculations and limits the same as cputmult is used for cpu time.

The configuration file must be executable and "secure". It must be owned by a user id and group id less than 10 and not be world writable. Output from this file must be in the format $VAR=$VAL, i.e.,

dataset13=20070104

dataset22=20070202

viraltest=abdd3

xauthpath

Specifies the path to the xauth binary to enable X11 fowarding.

mom_host

Sets the local hostname as used by pbs_mom.

## LAYOUT FILE
There is also an optional layout file for creating multiple moms on one box in a specified layout. In the file, each mom on the single box is given its own hostname, cpu indexes, memory nodes (a linux construct), and memory size. This is useful for NUMA systems. Each line in the file specifies one mom. The file follows the following format:

<hostname> cpus=<X> mem=<Y> memsize=<Z>

cpus and mem can be comma separated lists, while memsize should be a memory size in the format:

<number><units>

For example, a file could contain the following line:

foohost-1 cpus=1,2 mem=1,2,3,4 memsize=8GB

This would specify that foohost-1 has cpus 1 and 2, memory nodes 1-4, and a total of 8 GB of memory.

## RESOURCES
Resource Monitor queries can be made with momctl's -q option to retrieve and set pbs_mom options. Any configured static resource may be retrieved with a request of the same name. These are resource requests not otherwise documented in the PBS ERS.

cycle

forces an immediate MOM cycle

status_update_time

retrieve or set the $status_update_time parameter

check_poll_time

retrieve or set the $check_poll_time parameter

configversion

retrieve the config version

jobstartblocktime

retrieve or set the $jobstartblocktime parameter

enablemomrestart

retrieve or set the $enablemomrestart parameter

loglevel

retrieve or set the $loglevel parameter

down_on_error

retrieve or set the EXPERIMENTAL $down_on_error parameter

diag0 - diag4

retrieves various diagnostic information

rcpcmd

retrieve or set the $rcpcmd parameter

version

retrieves the pbs_mom version

## HEALTH CHECK
The health check script is executed directly by the pbs_mom daemon under the root user id. It must be accessible from the compute node and may be a script or compiled executable program. It may make any needed system calls and execute any combination of system utilities but should not execute resource manager client commands. Also, as of TORQUE 1.0.1, the pbs_mom daemon blocks until the health check is completed and does not possess a built-in timeout. Consequently, it is advisable to keep the launch script execution time short and verify that the script will not block even under failure conditions.

If the script detects a failure, it should return the keyword 'ERROR' to stdout followed by an error message. The message (up to 256 characters) immediately following the ERROR string will be assigned to the node attribute 'message' of the associated node.

If the script detects a failure when run from "jobstart", then the job will be rejected. This should probably only be used with advanced schedulers like Moab so that the job can be routed to another node.

TORQUE currently ignores ERROR messages by default, but advanced schedulers like moab can be configured to react appropriately.

If the experimental $down_on_error MOM setting is enabled, MOM will set itself to state down and report to pbs_server; and pbs_server will report the node as "down". Additionally, the experimental "down_on_error" server attribute can be enabled which has the same effect but moves the decision to pbs_server. It is redundant to have MOM's $down_on_error and pbs_server's down_on_error features enabled. See "down_on_error" in pbs_server_attributes(7B).

## FILES
$PBS_SERVER_HOME/server_name

contains the hostname running pbs_server.

$PBS_SERVER_HOME/mom_priv

the default directory for configuration files, typically (/usr/spool/pbs)/mom_priv.

$PBS_SERVER_HOME/mom_logs

directory for log files recorded by the server.

$PBS_SERVER_HOME/mom_priv/prologue

the administrative script to be run before job execution.

$PBS_SERVER_HOME/mom_priv/epilogue

the administrative script to be run after job execution.

## SIGNAL HANDLING
pbs_mom handles the following signals:

SIGHUP

causes pbs_mom to re-read its configuration file, close and reopen the log file, and reinitialize resource structures.

SIGALRM

results in a log file entry. The signal is used to limit the time taken by certain children processes, such as the prologue and epilogue.

SIGINT and SIGTERM

results in pbs_mom exiting without terminating any running jobs. This is the action for the following signals as well: SIGXCPU, SIGXFSZ, SIGCPULIM, and SIGSHUTDN.

SIGUSR1, SIGUSR2

causes MOM to increase and decrease logging levels, respectively.

SIGPIPE, SIGINFO

are ignored.

SIGBUS, SIGFPE, SIGILL, SIGTRAP, and SIGSYS

cause a core dump if the PBSCOREDUMP environmental variable is defined.

All other signals have their default behavior installed.

## EXIT STATUS
If the mini-server command fails to begin operation, the server exits with a value greater than zero.

## SEE ALSO
pbs_server(8B), pbs_scheduler_basl(8B), pbs_scheduler_tcl(8B), the PBS External Reference Specification, and the PBS Administrator's Guide.


package: torque-sched

title: pbs_sched_basl(8)

summary: pbs BASL scheduler

text:
# pbs_sched_basl(8)

## NAME
pbs_sched_basl - pbs BASL scheduler

## SYNOPSIS
pbs_sched [-d home] [-L logfile] [-p print_file] [-a alarm] [-S port] [-c configfile]

## DESCRIPTION
The pbs_sched command starts the operation of a batch scheduler on the local host. It runs in conjunction with the PBS server. It queries the server about the state of PBS and communicates with pbs_mom to get information about the status of running jobs, memory available etc. It then makes decisions as to what jobs to run.

Typically, this command will be in a local boot file such as /etc/rc.local .

pbs_sched must be executed with root permission.

## OPTIONS
-d home

Specifies the name of the PBS home directory, PBS_HOME. If not specified, the value of $PBS_SERVER_HOME as defined at compile time is used. Also see the -L option.

-L logfile

Specifies an absolute path name of the file to use as the log file. If not specified, the scheduler will open a file named for the current date in the PBS_HOME/sched_logs directory. See the -d option.

-p print_file

This specifies the "print" file. Any output from the scheduler code which is written to standard out or standard error will be written to this file. If this option is not given, the file used will be $PBS_HOME/sched_priv/sched_out. See the -d option.

-a alarm

This specifies the time in seconds to wait for a schedule run to finish. If a scheduling iteration takes too long to finish, an alarm signal is sent, and the scheduler is restarted. If a core file does not exist in the current directory, abort() is called and a core file is generated. The default for alarm is 180 seconds.

-S port

Specifies a port on which to talk to the server. This option is not required. It merely overides the default PBS scheduler port.

-c configfile

Specify a configuration file, see description below. If this is a relative file name it will be relative to PBS_HOME/sched_priv, see the -d option. If the -c option is not supplied, pbs_sched will not attempt to open a configuration file. In BASL, this config file is almost always needed because it is where the list of servers, nodes, and host resource queries are specified by the administrator.

## USAGE
This version of the scheduler requires knowledge of the BASL language. The site must first write a function called sched_main() (and all functions supporting it) using BASL constructs, and then translate the functions into C using the BASL compiler basl2c , which would also attach a main program to the resulting code. This main program performs general initialization and housekeeping chores such as setting up local socket to communicate with the server running on the same machine, cd-ing to the priv directory, opening log files, opening configuration file (if any), setting up locks, forking the child to become a daemon, initializing a scheduling cycle (i.e. get node attributes that are static in nature), setting up the signal handlers, executing global initialization assignment statements specified by the scheduler writer, and finally sitting on a loop waiting for a scheduling command from the server. When the server sends the scheduler an appropriate scheduling command {SCH_SCHEDULE_NEW, SCH_SCHEDULE_TERM, SCH_SCHEDULE_TIME, SCH_SCHEDULE_RECYC, SCH_SCHEDULE_CMD, SCH_SCHEDULE_FIRST}, information about server(s), jobs, queues, and execution host(s) are obtained, and then sched_main() is called.

## SCHEDULING LANGUAGE
The BAtch Scheduling Language (BASL) is a C-like procedural language. It provides a number of constructs and predefined functions that facilitate dealing with scheduling issues. Information about a PBS server, the queues that it owns, jobs residing on each queue, and the computational nodes where jobs can be run, are accessed via the BASL data types Server, Que, Job, CNode, Set Server, Set Que, Set Job, and Set CNode.

The following simple sched_main() will cause the server to run all queued jobs on the local server:

```
sched_main()
{

        Server  s;

        Que     q;

        Job     j;

        Set Que queues;

        Set Job jobs;

        s = AllServersLocalHostGet(); // get local server

        queues = ServerQueuesGet(s);

        foreach( q in queues ) {

                jobs = QueJobsGet(q);

                foreach( j in jobs ) {

                         JobAction(j, SYNCRUN, NULLSTR);

                }

        }

}
```

For a more complete discussion of the Batch Scheduler Language, see basl2c(1B) .

## CONFIGURATION FILE
A configuration file may be specified with the -c option. This file is used to specify the (1) hosts which are allowed to connect to pbs_sched, (2) the list of server hosts for which the scheduler writer wishes the system to periodically check for status, queues, and jobs info, (3) list of execution hosts for which the scheduler writer wants the system to periodically check for information like state, property, and so on, and (4) various queries to send to each execution host.

(1) specifying client hosts:

The hosts allowed to connect to pbs_sched are specified in the configuration file in a manner identical to that used in pbs_mom. There is one line per host using the syntax: $clienthost hostname

where clienthost and hostname are separated by white space. Two host names are always allowed to connection to pbs_sched: "localhost" and the name returned to pbs_sched by the system call gethostname(). These names need not be specified in the configuration file.

(2) specifying list of servers:

The list of servers is specified in a one host per line manner, using the syntax: $serverhost hostname port_number

or where $server_host, hostname, and port_number are separated by white space.

If port_number is 0, then the default PBS server port will be used.

Regardless of what has been specified in the file, the list of servers will always include the local server - one running on the same host where the scheduler is running.

Within the BASL code, access to data of the list of servers is done by calling AllServersGet(), or AllServersLocalHostGet() which returns the local server on the list.

(3) specifying the list of execution hosts:

The list of execution hosts (nodes), whose MOMs are to be queried from the scheduler, is specified in a one host per line manner, using the syntax: $momhost hostname port_number

where $momhost, hostname, and port_number are separated by white space.

If port_number is 0, then the default PBS MOM port will be used.

The BASL function AllNodesGet() , or ServerNodesGet(AllServersLocalHostGet()) is available for getting the list of nodes known to the local system.

(4) specifying the list of host resources:

For specifying the list of host resource queries to send to each execution host's MOM, the following syntax is used: $node node_name CNode..Get host_resource

node_name should be the same hostname string that was specified in a $momhost line. A node_name value of "*" (wildcard) means to match any node.

Please consult section 9 of the PBS ERS (Resource Monitor/Resources) for a list of possible values to host_resource parameter.

CNode..Get refers to the actual function name that is called from the scheduler code to obtain the return values to host resource queries. The list of CNode..Get function names that can appear in the configuration file are: .BP

```
    STATIC:

    ================================

    CNodePropertiesGet

    CNodeVendorGet

    CNodeNumCpusGet

    CNodeOsGet

    CNodeMemTotalGet[type]

    CNodeNetworkBwGet[type]

    CNodeSwapSpaceTotalGet[name]

    CNodeDiskSpaceTotalGet[name]

    CNodeDiskInBwGet[name]

    CNodeDiskOutBwGet[name]

    CNodeTapeSpaceTotalGet[name]

    CNodeTapeInBwGet[name]

    CNodeTapeOutBwGet[name]

    CNodeSrfsSpaceTotalGet[name]

    CNodeSrfsInBwGet[name]

    CNodeSrfsOutBwGet[name]

    DYNAMIC:

    ================================

    CNodeIdletimeGet

    CNodeLoadAveGet

    CNodeMemAvailGet[type]

    CNodeSwapSpaceAvailGet[name]

    CNodeSwapInBwGet[name]

    CNodeSwapOutBwGet[name]

    CNodeDiskSpaceReservedGet[name]

    CNodeDiskSpaceAvailGet[name]

    CNodeTapeSpaceAvailGet[name]

    CNodeSrfsSpaceReservedGet[name]

    CNodeSrfsSpaceAvailGet[name]

    CNodeCpuPercentIdleGet

    CNodeCpuPercentSysGet

    CNodeCpuPercentUserGet

    CNodeCpuPercentGuestGet
```

STATIC function names return values that are obtained only during the first scheduling cycle, or when the scheduler is instructed to reconfig; whereas, DYNAMIC function names return attribute values that are taken at every subsequent scheduling cycle.

name and type are arbitrarily defined. For example, you can choose to have name defined as "$FASTDIR" for the CNodeSrfs* calls, and a sample configuration file entry would look like:

```
   $node unicos8 CNodeSrfsSpaceAvailGet[$FASTDIR]

                               quota[type=ares_avail,dir=$FASTDIR]
```

So in a BASL code, if you call CNodeSrfsSpaceAvailGet(node, "$FASTDIR"), then it will return the value to the query "quota[type=ares_avail,dir=$FASTDIR]" (3rd parameter) as sent to the node's MOM.

By default, the scheduler has already internally defined the following mappings, which can be overriden in the configuration file:

```
keyword  node_name   CNode..Get        host_resource
=======  =========   ================  =============
$node    *           CNodeOsGet        arch
$node    *           CNodeLoadAveGet   loadave
$node    *           CNodeIdletimeGet  idletime
```

The above means that for all declared nodes (via $momhost), the host queries arch, loadave, and idletime will be sent to each node's MOM. The value to arch is obtained internally by the system during the first scheduling cycle because it falls under STATIC category, while values to loadave and idletime are taken at every scheduling iteration because they fall under the DYNAMIC category. Access to the return values is done by calling CNodeOsGet(node), CNodeLoadAveGet(node), and CNodeIdletimeGet(node), respectively. The following are some sample $node arguments that you may put in the configuration file. .BP

```
node_name           CNode..Get                       host res
==================  =========================        ==========
<sunos4_nodename>   CNodeIdletimeGet                 idletime
<sunos4_nodename>   CNodeLoadAveGet                  loadave
<sunos4_nodename>   CNodeMemTotalGet[real]           physmem
<sunos4_nodename>   CNodeMemTotalGet[virtual]        totmem
<sunos4_nodename>   CNodeMemAvailGet[virtual]        availmem
<irix5_nodename>    CNodeNumCpusGet                  ncpus
<irix5_nodename>    CNodeMemTotalGet[real]           physmem
<irix5_nodename>    CNodeMemTotalGet[virtual]        totmem
<irix5_nodename>    CNodeIdletimeGet                 idletime
<irix5_nodename>    CNodeLoadAveGet                  loadave
<irix5_nodename>    CNodeMemAvailGet[virtual]        availmem
<linux_nodename>    CNodeNumCpusGet                  ncpus
<linux_nodename>    CNodeMemTotalGet[real]           physmem
<linux_nodename>    CNodeMemTotalGet[virtual]        totmem
<linux_nodename>    CNodeIdletimeGet                 idletime
<linux_nodename>    CNodeLoadAveGet                  loadave
<linux_nodename>    CNodeMemAvailGet[virtual]        availmem
<solaris5_nodename> CNodeIdletimeGet                 idletime
<solaris5_nodename> CNodeLoadAveGet                  loadave
<solaris5_nodename> CNodeNumCpusGet                  ncpus
<solaris5_nodename> CNodeMemTotalGet[real]           physmem
<aix4_nodename>     CNodeIdletimeGet                 idletime
<aix4_nodename>     CNodeLoadAveGet                  loadave
<aix4_nodename>     CNodeMemTotalGet[virtual]        totmem
<aix4_nodename>     CNodeMemAvailGet[virtual]        availmem
<unicos8_nodename>  CNodeIdletimeGet                 idletime
<unicos8_nodename>  CNodeLoadAveGet                  loadave
<unicos8_nodename>  CNodeNumCpusGet                  ncpus
<unicos8_nodename>  CNodeMemTotalGet[real]           physme
<unicos8_nodename>  CNodeMemAvailGet[virtual]        availmem
<unicos8_nodename>  CNodeSwapSpaceTotalGet[primary]  swaptotal
<unicos8_nodename>  CNodeSwapSpaceAvailGet[primary]  swapavail
<unicos8_nodename>  CNodeSwapInBwGet[primary]        swapinrate
<unicos8_nodename>  CNodeSwapOutBwGet[primary]       swapoutrate
<unicos8_nodename>  CNodePercentIdleGet              cpuidle
<unicos8_nodename>  CNodePercentSysGet               cpuunix
<unicos8_nodename>  CNodePercentGuestGet             cpuguest
<unicos8_nodename>  CNodePercentUsrGet               cpuuser
<unicos8_nodename>  CNodeSrfsSpaceAvailGet[$FASTDIR] quota[type

                                                   =ares_avail,

                                                   dir=$FASTDIR]
<unicos8_nodename>  CNodeSrfsSpaceAvailGet[$BIGDIR]  quota[type

                                                   =ares_avail,

                                                   dir=$BIGDIR]
<unicos8_nodename>  CNodeSrfsSpaceAvailGet[$WRKDIR]  quota[type

                                                   =ares_avail,

                                                   dir=$WRKDIR]
<sp2_nodename>      CNodeLoadAveGet                  loadave
```

Suppose you have an execution host that is of irix5 os type, then the <irix5_node_name> entries will be consulted by the scheduler. The initial scheduling cycle would involve sending the STATIC queries ncpus, physmem, totmem to the execution host's MOM, and access to return values of the queries is done via CNodeNumCpusGet(node), CNodeMemTotalGet(node, "real"), CNodeMemTotalGet(node, "virtual") respectively, where node is the CNode representation of the execution host. The subsequent scheduling cycles will only send DYNAMIC queries idletime, loadave, and availmem, and access to the return values of the queries is done via CNodeIdleTimeGet(node), CNodeLoadAveGet(node), CNodeMemAvailGet(node, "virtual"). respectively.

"Later" entries in the config file take precedence.

The configuration file must be "secure". It must be owned by a user id and group id less than 10 and not be world writable.

On receipt of a SIGHUP signal, the scheduler will close and reopen its log file and reread its configuration file (if any).

## FILES
$PBS_SERVER_HOME/sched_priv

the default directory for configuration files, typically (/usr/spool/pbs)/sched_priv.

## Signal Handling
A C based scheduler will handle the following signals:

SIGHUP

The server will close and reopen its log file and reread the config file if one exists.

SIGALRM

If the site supplied scheduling module exceeds the time limit, the Alarm will cause the scheduler to attempt to core dump and restart itself.

SIGINT and SIGTERM

Will result in an orderly shutdown of the scheduler.

All other signals have the default action installed.

## EXIT STATUS
Upon normal termination, an exit status of zero is returned.

## SEE ALSO
basl2c(1B), pbs_sched_tcl(8B), pbs_server(8B), and pbs_mom(8B).

PBS Internal Design Specification


title: pbs_sched_cc(8)

summary: pbs C scheduler

text:
# pbs_sched_cc(8)

## NAME
pbs_sched_cc - pbs C scheduler

## SYNOPSIS
pbs_sched [-a alarm] [-d home] [-L logfile] [-p file] [-S port] [-R port] [-c file]

## DESCRIPTION
The pbs_sched program runs in conjunction with the PBS server. It queries the server about the state of PBS and communicates with pbs_resmon to get information about the status of running jobs, memory available etc. It then makes decisions as to what jobs to run.

pbs_sched must be executed with root permission.

## OPTIONS
-a alarm

This specifies the time in seconds to wait for a schedule run to finish. If a script takes too long to finish, an alarm signal is sent, and the scheduler is restarted. If a core file does not exist in the current directory, abort() is called and a core file is generated. The default for alarm is 180 seconds.

-d home

This specifies the PBS home directory, PBS_HOME. The current working directory of the scheduler is PBS_HOME/sched_priv. If this option is not given, PBS_HOME defaults to $PBS_SERVER_HOME as defined during the PBS build procedure.

-L logfile

Specifies an absolute path name of the file to use as the log file. If not specified, the scheduler will open a file named for the current date in the PBS_HOME/sched_logs directory (see the -d option).

-p file

This specifies the "print" file. Any output from the C code which is written to standard out or standard error will be written to this file. If this option is not given, the file used will be PBS_HOME/sched_priv/sched_out . See the -d option.

-S port

This specifies the port to use. If this option is not given, the default port for the PBS scheduler is used.

-R port

This specifies the resource monitor port to use. If this option is not given, the default port for the PBS mom is used. NOTE: this option only makes the mom port available to the scheduler writer. It doesn't force them to use it.

-c file

Specify a configuration file, see description below. If this is a relative file name it will be relative to PBS_HOME/sched_priv, see the -d option. If the -c option is not supplied, pbs_sched will not attempt to open a configuration file.

The options that specify file names may be absolute or relative. If they are relative, their root directory will be PBS_HOME/sched_priv.

## USAGE
This version of the scheduler requires knowledge of the C language and the PBS API. Source code is provided for a main program for the scheduler. The site must supply the heart of the program. When invoked, the main program performs general initialization and housekeeping chores. Then a locally supplied function, schedinit() is called to perform site specific initialization.

In the main loop, a locally supplied function, schedule() is called to make the scheduling decisions and perform any required actions. Information about jobs and queues is obtained from the Server through the standard PBS API as found in libifl.a. Information about the execution host(s) is obtained from the Resource Monitor. Routines to communicate with the Resource Monitor are found in libnet.a.

If the processing takes more than the allotted time, the scheduler will restart itself. The default amount of time is three minutes. This can be changed with the -a option.

On receipt of a SIGHUP signal, the scheduler will close and reopen its log file and reread its configuration file (if any).

## CONFIGURATION FILE
A configuration file may be specified with the -c option. This file may be used to specify the hosts (servers) which are allowed to connect to pbs_sched. The hosts are specified in the configuration file in a manor identical to that used in pbs_mom.

clienthost

One or more servers, one per line, may be specified:

$clienthost hostname +.IP restricted Allows connections from non-priviledged ports on the named hosts. Typically only used with Mac OSX:

$restricted hostname

Two host names are always allowed to connection to pbs_sched, "localhost" and the name returned to pbs_sched by the system call gethostname(). These names need not be specified in the configuration file.

The configuration file must be "secure". It must be owned by a user id and group id less than 10 and not be world writable.

## FILES
$PBS_SERVER_HOME/sched_priv

the default directory for configuration files, typically (/usr/spool/pbs)/sched_priv.

## Signal Handling
A C based scheduler will handle the following signals:

SIGHUP

The server will close and reopen its log file and reread the config file if one exists.

SIGALRM

If the site supplied scheduling module exceeds the time limit, the Alarm will cause the scheduler to attempt to core dump and restart itself.

SIGINT and SIGTERM

Will result in an orderly shutdown of the scheduler.

All other signals have the default action installed.

## EXIT STATUS
Upon normal termination, an exit status of zero is returned.

## SEE ALSO
pbs_sched_tcl(8B), pbs_server(8B), and pbs_mom(8B).

PBS Internal Design Specification


title: pbs_sched_tcl(8)

summary: pbs Tcl scheduler

text:
# pbs_sched_tcl(8)

## NAME
pbs_sched_tcl - pbs Tcl scheduler

## SYNOPSIS
pbs_sched [-a alarm] [-b file] [-d home] [-i file] [-L logfile] [-p file] [-S port] [-t file] [-v] [-c file]

## DESCRIPTION
The pbs_sched program runs in conjunction with the PBS server. It queries the server about the state of PBS and communicates with pbs_mom to get information about the status of running jobs, memory available etc. It then makes decisions as to what jobs to run.

pbs_sched must be executed with root permission.

## OPTIONS
-a alarm

This specifies the time in seconds to wait for a schedule run to finish. If a script takes too long to finish, an alarm signal is sent, and the scheduler is restarted. If a core file does not exist in the current directory, abort() is called and a core file is generated. The default for alarm is 180 seconds.

-b file

This specifies the "body" file. The file given is read into memory once at program start or after the program receives a SIGHUP and executed each time the scheduler is awakened by the server. If this option is not given, the file "sched_tcl" in the directory PBS_HOME/sched_priv is read for the body code.

-d home

This specifies the PBS home directory, PBS_HOME. The current working directory of the scheduler is PBS_HOME/sched_priv. If this option is not given, PBS_HOME defaults to $PBS_SERVER_HOME as defined during the PBS build procedure.

-i file

This specifies the "initialize" file. The file given is executed once before the main processing loop is entered. If this option is not given, no initialization code is executed.

-L logfile

Specifies an absolute path name of the file to use as the log file. If not specified, the scheduler will open a file named for the current date in the PBS_HOME/sched_logs directory (see the -d option).

-p file

This specifies the "print" file. Any output from the Tcl code which is written to standard out or standard error will be written to this file. If this option is not given, the file used will be PBS_HOME/sched_priv/sched_out. See the -d option.

-S port

This specifies the port to use. If this option is not given, the default port for the PBS scheduler is used.

-t file

This specifies the "terminator" file. If a QUIT command is sent from the server, this code is executed before the scheduler exits. If this option is not given, no special termination handling is done.

-v

This puts the scheduler into "verbose" mode. Any errors will be shown no matter what this may be set to, but some "uninteresting" events may be logged by using this flag. An example is a message each time the server contacts the scheduler.

-c file

Specify a configuration file, see description below. If this is a relative file name it will be relative to PBS_HOME/sched_priv, see the -d option. If the -c option is not supplied, pbs_sched will not attempt to open a configuration file.

The options that specify file names may be absolute or relative. If they are relative, their root directory will be PBS_HOME/sched_priv.

## USAGE
This version of the scheduler requires knowledge of the Tcl language. A set of functions to communicate with the PBS server and resource monitor have been added to those normally available with Tcl. All these calls will set the Tcl variable "pbs_errno" to a value to indicate if an error occured. In all cases, the value "0" means no error. If a call to a Resource Monitor function is made, any error value will come from the system supplied errno variable. If the function call communicates with the PBS Server, any error value will come from the error number returned by the server.

openrm host ?port?

Creates a connection to the PBS Resource Monitor on host using port as the port number or the standard port for the resource monitor if it is not given. A connection handle is returned. If the open is successful, this will be a non-negative integer. If not, an error occurred.

closerm connection

The parameter connection is a handle to a resource monitor which was previously returned from openrm. This connection is closed. Nothing is returned.

downrm connection

Sends a command to the connected resource monitor to shutdown. Nothing is returned.

configrm connection filename

Sends a command to the connected resource monitor to read the configuration file given by filename. If this is successful, a "0" is returned, otherwise, "-1" is returned.

addreq connection request

A resource request is sent to the connected resource monitor. If this is successful, a "0" is returned, otherwise, "-1" is returned.

getreq connection

One resource request response from the connected resource monitor is returned. If an error occurred or there are no more responses, an empty string is returned.

allreq request

A resource request is sent to all connected resource monitors. The number of streams acted upon is returned.

flushreq

All resource requests previously sent to all connected resource monitors are flushed out to the network. Nothing is returned.

activereq

The connection number of the next stream with something to read is returned. If there is nothing to read from any of the connections, a negative number is returned.

fullresp flag

Evaluates flag as a boolean value and sets the response mode used by getreq to full if flag evaluates to "true". The full return from a resource monitor includes the original request followed by an equal sign followed by the response. The default situation is only to return the response following the equal sign. If a script needs to "see" the entire line, this function may be used.

pbsstatserv

The server is sent a status request for information about the server itself. If the request succeeds, a list with three elements is returned, otherwise an empty string is returned. The first element is the server's name. The second is a list of attributes. The third is the "text" associated with the server (usually blank).

pbsstatjob

The server is sent a status request for information about the all jobs resident within the server. If the request succeeds, a list is returned, otherwise an empty string is returned. The list contains an entry for each job. Each element is a list with three elements. The first is the job's jobid. The second is a list of attributes. The attribute names which specify resources will have a name of the form "Resource_List:name" where "name" is the resource name. The third is the "text" associated with the job (usually blank).

pbsstatque

The server is sent a status request for information about all queues resident within the server. If the request succeeds, a list is returned, otherwise an empty string is returned. The list contains an entry for each queue. Each element is a list with three elements. This first is the queue's name. The second is a list of attributes similar to pbsstatjob. The third is the "text" associated with the queue (usually blank).

pbsstatnode

The server is sent a status request for information about all nodes defined within the server. If the request succeeds, a list is returned, otherwise an empty string is returned. The list contains an entry for each node. Each element is a list with three elements. This first is the nodes's name. The second is a list of attributes similar to pbsstatjob. The third is the "text" associated with the node (usually blank).

pbsselstat

The server is sent a status request for information about the all runnable jobs resident within the server. If the request succeeds, a list similar to pbsstatjob is returned, otherwise an empty string is returned.

pbsrunjob jobid ?location?

Run the job given by jobid at the location given by location. If location is not given, the default location is used. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsasyrunjob jobid ?location?

Run the job given by jobid at the location given by location without waiting for a positive response that the job has actually started. If location is not given, the default location is used. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsrerunjob jobid

Re-runs the job given by jobid. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsdeljob jobid

Delete the job given by jobid. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsholdjob jobid

Place a hold on the job given by jobid. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsmovejob jobid ?location?

Move the job given by jobid to the location given by location. If location is not given, the default location is used. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsqenable queue

Set the "enabled" attribute for the queue given by queue to true. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsqdisable queue

Set the "enabled" attribute for the queue given by queue to false. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsqstart queue

Set the "started" attribute for the queue given by queue to true. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsqstop queue

Set the "started" attribute for the queue given by queue to false. If this is successful, a "0" is returned, otherwise, "-1" is returned.

pbsalterjob jobid attribute_list

Alter the attributes for a job specified by jobid. The parameter attribute_list is the list of attributes to be altered. There can be more than one. Each attribute consists of a list of three elements. The first is the name, the second the resource and the third is the new value. If the alter is successful, a "0" is returned, otherwise, "-1" is returned.

pbsrescquery resource_list

Obtain information about the resources specified by resource_list. This will be a list of strings. If the request succeeds, a list with the same number of elements as resource_list is returned. Each element in this list will be a list with four numbers. The numbers specify available, allocated, reserved, and down in that order.

pbsrescreserve resource_id resource_list

Make (or extend) a reservation for the resources specified by resource_list which will be given as a list of strings. The parameter resource_id is a number which provides a unique identifier for a reservation being tracked by the server. If resource_id is given as "0", a new reservation is created. In this case, a new identifier is generated and returned by the function. If an old identifier is used, that same number will be returned. The Tcl variable "pbs_errno" will be set to indicate the success or failure of the reservation.

pbsrescrelease resource_id

The reservation specified by resource_id is released.

The two following commands are not normally used by the scheduler. They are included here because there could be a need for a scheduler to contact a server other than the one which it normally communicates with. Also, these commands are used by the Tcl tools.

pbsconnect ?server?

Make a connection to the named server or the default server if a parameter is not given. Only one connection to a server is allowed at any one time.

pbsdisconnect

Disconnect from the currently connected server.

The above Tcl functions use PBS interface library calls for communication with the server and the PBS resource monitor library to communicate with pbs_mom.

datetime ?day? ?time?

The number of arguments used determine the type of date to be calculated. With no arguments, the current POSIX date is returned. This is an integer in seconds. With one argument there are two possible formats. The first is a 12 (or more) character string specifying a complete date in the following format:

```
YYMMDDhhmmss

```

All characters must be digits. The year (YY) is given by the first two (or more) characters and is the number of years since 1900. The month (MM) is the number of the month [01-12]. The day (DD) is the day of the month [01-32]. The hour (hh) is the hour of the day [00-23]. The minute (mm) is minutes after the hour [00-59]. The second (ss) is seconds after the minute [00-59]. The POSIX date for the given date/time is returned. The second option with one argument is a relative time. The format for this is

```
HH:MM:SS

```

With hours (HH), minutes (MM) and seconds (SS) being separated by colons ":". The number returned in this case will be the number of seconds in the interval specified, not an absolute POSIX date. With two arguments a relative date is calculated. The first argument specifies a day of the week and must be one of the following strings: "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", or "Sat". The second argument is a relative time as given above. The POSIX date calculated will be the day of the week given which follows the current day, and the time given in the second argument. For example, if the current day was Monday, and the two arguments were "Fri" and "04:30:00", the date calculated would be the POSIX date for the Friday following the current Monday, at four-thirty in the morning. If the day specified and the current day are the same, the current day is used, not the day one week later.

strftime format time

This function calls the POSIX function strftime(). It requires two arguments. The first is a format string. The format conventions are the same as those for the POSIX function strftime(). The second argument is POSIX calendar time in second as returned by datetime. It returns a string based on the format given. This gives the ability to extract information about a time, or format it for printing.

The Tcl interpreter is started at program initialization and after a reset (the receipt of a SIGHUP signal). It is not deleted between scheduling runs so variables which are set in one can be accessed later.

The "initialize" and "terminator" files are run with no supplied connection to the server. This means that none of the above functions which talk to the server will work unless pbsconnect is called first. The "body" file is run with a connection to the server already established.

## CONFIGURATION FILE
A configuration file may be specified with the -c option. This file may be used to specify the hosts (servers) which are allowed to connect to pbs_sched. The hosts are specified in the configuration file in a manor identical to that used in pbs_mom. There is one line per host with the syntax:

$clienthost hostname

where clienthost and hostname are separated by white space.

Two host names are always allowed to connection to pbs_sched, "localhost" and the name returned to pbs_sched by the system call gethostname(). These names need not be specified in the configuration file.

The configuration file must be "secure". It must be owned by a user id and group id less than 10 and not be world writable.

## FILES
$PBS_SERVER_HOME/sched_priv

the default directory for configuration files, typically (/usr/spool/pbs)/sched_priv.

## Signal Handling
A C based scheduler will handle the following signals:

SIGHUP

The server will close and reopen its log file and reread the config file if one exists.

SIGALRM

If the site supplied scheduling module exceeds the time limit, the Alarm will cause the scheduler to attempt to core dump and restart itself.

SIGINT and SIGTERM

Will result in an orderly shutdown of the scheduler.

All other signals have the default action installed.

## EXIT STATUS
Upon normal termination, an exit status of zero is returned.

## SEE ALSO
pbs_scheduler_cc(8B), pbs_scheduler_rule(8B), pbs_server(8B), and pbs_mom(8B).

PBS Internal Design Specification