qmgr(1B)

πŸ“¦ version 6.1.3, in epel 9, nixos 26.05, nixpkgs unstable

πŸ’– qmgr(1B) β€” the PBS batch system manager, but make it make sense πŸ’–

Okay so bestie, welcome to qmgr β€” the admin interface for the PBS batch system. This is from the PBS manual, section 1B, and it's literally your control room for queues, servers, and nodes. Think of it as the group chat where you tell the batch system what to do, and it actually listens (mostly). ✨


🌸 SYNOPSIS 🌸

qmgr [-a] [-c command] [-e] [-n] [-z] [server...]

πŸ¦‹ DESCRIPTION πŸ¦‹

So qmgr is the command that gives you an administrator interface to the batch system. It reads directives from standard input, checks the syntax of each one, and then sends the appropriate request to the batch server or servers. It's giving main character energy for sysadmins, fr fr. πŸ’…

Here's the tea on who can do what:

  • The list or print subcommands of qmgr can be executed by general users β€” yes, even the non-admins can peek. πŸ‘€
  • Creating or deleting a queue requires PBS Manager privilege.
  • Setting or unsetting server or queue attributes requires PBS Operator or Manager privilege.
No cap: if you don't have the right privilege, the server will reject your request. Don't say I didn't warn you. πŸ’€

✨ OPTIONS ✨

  • -a β€” Abort qmgr on any syntax errors or any requests rejected by a server. Like, it just stops. No second chances. 😀
  • -c command β€” Execute a single command and exit qmgr. One and done, periodt.
  • -e β€” Echo all commands to standard output. So you can see exactly what you typed. Very demure, very mindful. πŸŽ€
  • -n β€” No commands are executed, syntax checking only is performed. It's the "look but don't touch" option. πŸ™ˆ
  • -z β€” No errors are written to standard error. Quiet mode activated. Shhh. 🀫

🌈 OPERANDS 🌈

The server operands identify the name of the batch server to which the administrator requests are sent. Each server conforms to this syntax:

host_name[:port]

Where host_name is the network name of the host on which the server is running, and port is the port number to which to connect. If port is not specified, the default port number is used. Easy peasy. πŸ“

If server is not specified, the administrator requests are sent to the local server. So if you're lazy (same), it just goes local by default. 🫢


πŸ’œ STANDARD INPUT πŸ’œ

The qmgr command reads standard input for directives until end of file is reached, or the exit or quit directive is read. So you can keep typing commands until you're literally done. No judgment. 😌


πŸ’– STANDARD OUTPUT πŸ’–

If Standard Output is connected to a terminal, a command prompt will be written to standard output when qmgr is ready to read a directive. It's like a lil "hey bestie, I'm ready" vibe. ✨

If the -e option is specified, qmgr will echo the directives read from standard input to standard output. So you get receipts. 🧾


πŸŽ€ STANDARD ERROR πŸŽ€

If the -z option is not specified, the qmgr command will write a diagnostic message to standard error for each error occurrence. So errors are loud by default β€” unless you use -z to silence them. πŸ’…


πŸ”₯ EXTENDED DESCRIPTION πŸ”₯

If qmgr is invoked without the -c option and standard output is connected to a terminal, qmgr will write a prompt to standard output and read a directive from standard input. It's interactive, iconic, and lowkey fun. πŸ‘‘

Commands can be abbreviated to their minimum unambiguous form. A command is terminated by a new line character or a semicolon, ;, character. Multiple commands may be entered on a single line. A command may extend across lines by escaping the new line character with a back-slash \. So you can go wild with formatting β€” just don't forget the backslash. 😭

Comments begin with the # character and continue to end of the line. Comments and blank lines are ignored by qmgr. So you can leave lil notes for yourself. We love self-care. 🌸


🧚 DIRECTIVE SYNTAX 🧚

A qmgr directive is one of the following forms:

command server [names] [attr OP value[,attr OP value,...]]
command queue [names] [attr OP value[,attr OP value,...]]
command node [names] [attr OP value[,attr OP value,...]]

Where:

  • command β€” is the command to perform on an object. Commands are:
    • active β€” sets the active objects. If the active objects are specified, and the name is not given in a qmgr cmd, the active object names will be used. It's like setting your status to "busy" and everyone knows. πŸ“±
    • create β€” is to create a new object, applies to queues and nodes. New object, who dis? πŸŽ‰
    • delete β€” is to destroy an existing object, applies to queues and nodes. Gone. Reduced to atoms. πŸ’€
    • set β€” is to define or alter attribute values of the object. Glow-up time. ✨
    • unset β€” is to clear the value of attributes of the object. Note: this form does not accept an OP and value, only the attribute name. So don't come for me with extra arguments. πŸ™…β€β™€οΈ
    • list β€” is to list the current attributes and associated values of the object. The "show me what you got" command. πŸ‘€
    • print β€” is to print all the queue and server attributes in a format that will be usable as input to the qmgr command. It's giving copy-paste energy. 🧾
  • names β€” is a list of one or more names of specific objects. The name list is in the form:
[name][@server][,queue_name[@server]...]

with no intervening white space. The name of an object is declared when the object is first created. If the name is @server, then all the objects of specified type at the server will be effected. So @server is the "everyone in the group chat" move. πŸ“’

  • attr β€” specifies the name of an attribute of the object which is to be set or modified. If the attribute is one which consists of a set of resources, then the attribute is specified in the form:
attribute_name.resource_name
  • OP β€” operation to be performed with the attribute and its value:
    • = β€” set the value of the attribute. If the attribute has an existing value, the current value is replaced with the new value. Full replacement, no survivors. πŸ”„
    • += β€” increase the current value of the attribute by the amount in the new value. Math but make it admin. βž•
    • -= β€” decrease the current value of the attribute by the amount in the new value. Subtraction slay. βž–
  • value β€” the value to assign to an attribute. If the value includes white space, commas or other special characters, such as the # character, the value string must be inclosed in quote marks ("). So if you're trying to be fancy with spaces, quote it or it will break. You've been warned. ⚠️

The following are examples of qmgr directives:

create queue fast priority=10,queue_type=e,enabled = true,max_running=0
set queue fast max_running +=2
create queue little
set queue little resources_max.mem=8mw,resources_max.cput=10
unset queue fast max_running
set node state = down,offline
active server s1,s2,s3
list queue @server1
set queue max_running = 10    - uses active queues

These are literally in the manual, so copy them exactly if you're testing. No cap. πŸ§ͺ


🌟 EXIT STATUS 🌟

Upon successful processing of all the operands presented to the qmgr command, the exit status will be a value of zero. You ate that. πŸ‘‘

If the qmgr command fails to process any operand, the command exits with a value greater than zero. So if things go sideways, you'll know. 😭


🫢 SEE ALSO 🫢

  • pbs_server(8B)
  • pbs_queue_attributes(7B)
  • pbs_server_attributes(7B)
  • qstart(8B)
  • qstop(8B)
  • qenable(8B)
  • qdisable(8)
  • pbs_resources(7B)
  • and the PBS External Reference Specification

Go read those if you want the full lore. iykyk. πŸ“š


And that's the whole vibe, bestie. This page is from the Local manual set and it's dated like the classic PBS docs β€” so if you're ever lost, just remember: qmgr is your admin bestie, and it's literally always there for you. Stay slaying, stay syntax-checking, and don't forget to quote your values. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from