qstat(1B)
π qstat(1B) β the PBS Professional glow-up
okay bestie, welcome to qstat(1B) from PBS Professional β this is the page where you learn to see your jobs, queues, and servers. it's literally the vibe check for your whole cluster. let's go β¨
πΈ NAME
qstat β display status of PBS jobs, queues, or servers
π SYNOPSIS
no cap, the synopsis is the biggest part, so we're breaking it into lil groups. stay with me π«Ά
π Displaying Job Status
Default format:
qstat [-E] [-J] [-p] [-t] [-w] [-x] [[<job ID> | <destination>]
...]
Long format:
qstat -f [-F json | dsv [-D <delimiter>]] [-E] [-J] [-p] [-t]
[-w]
[-x] [[<job ID> | <destination>] ...]
Alternate format:
qstat [-a | -H | -i | -r ] [-E] [-G | -M] [-J] [-n [-1]]
[-s [-1]] [-t] [-T] [-u <user list>] [-w]
[[<job ID> | <destination>] ...]
π¦ Displaying Queue Status
Default format:
qstat -Q [<destination> ...]
Long format:
qstat -Q -f [-F json | dsv [-D <delimiter>]] [-w] [<destination>
...]
Alternate format:
qstat -q [-G | -M] [<destination> ...]
π Displaying Server Status
Default format:
qstat -B [<server> ...]
Long format:
qstat -B -f [-F json | dsv [-D <delimiter>]] [-w] [<server> ...]
β Version Information
qstat --version
π DESCRIPTION
the qstat command displays the status of jobs, queues, or servers, and writes that status info to standard output. periodt.
when it's showing job status, qstat displays status info about all specified jobs, job arrays, and subjobs. you can name jobs by ID, or by destination β like, say, all jobs at a specified queue or server. iykyk π
π§ Display Formats
you get to pick your format with particular options: a default format, an alternate format, or a long format. default and alternate formats show all the status info for a job, queue, or server with one line per object, all in columns. long formats show status info with all attributes, one attribute to a line. choose your fighter β¨
π Displaying Information for Finished and Moved Jobs
you can display status info for finished and moved jobs by using the -x and -H options.
if your job got moved to another server through peer scheduling, give the job ID as an argument to qstat. if you don't specify the job ID, your job will not appear to exist π (dramatic but true). for example, your job 123.ServerA is moved to ServerB. in this case, you can use
qstat 123
or
qstat 123.ServerA
specifying the full job name, including the server, avoids the possibility that qstat will report on a job named 123.ServerB that was moved to ServerA. π
to list all jobs at ServerB, you can use:
qstat @ServerB
π Displaying Truncated Data
when the number of characters required would exceed the space available, qstat truncates the output and puts an asterisk ("*") in the last position. for example, in default job display format, there are three characters allowed for the number of cores. if the actual output were 1234 , the value displayed would be 12* instead. it's giving "we ran out of room bestie" π
π₯ Required Privilege
users without Manager or Operator privilege cannot view resources or attributes that are invisible to unprivileged users. no sneaky peeking π
π DISPLAYING JOB STATUS
πΈ Job Status in Default Format
Triggers: no options, or any of the -J, -p, -t, or -x options.
the qstat command displays job status in default format when you specify no options, or any of the -J, -p, -t, or -x, options. jobs are displayed one to a line, with these column headers:
Job ID Name User Time Use S Queue
-------- ---------- --------- -------- - -----
Description of columns:
Job IDβ width 17 without-w(that's 22 whenmax_job_sequence_id > 10 million), and 30 with-w. it's the Job ID assigned by PBS.Nameβ width 16 without-w, 15 with-w. the job name specified by submitter.Userβ width 16 without-w, 15 with-w. username of job owner.Time UseorPercent Completeβ width 8 without-w, 8 with-w. this is the CPU time used by the job. before the application has actually started running, for example during stage-in, this field is "0". at the point where the application starts accumulating cput, this field changes to "00:00:00". after that, every time the MoM polls for resource usage, the field is updated. the MoM on each execution host polls for the usage of all processes on her host belonging to the job. usage is summed. the polling interval is short when a job first starts running and lengthens to a maximum of 2 minutes. β±οΈ if you specify-p, theTime Usecolumn is replaced with the percentage completed for the job. for a job array this is the percentage of subjobs completed. for a normal job, it is the percentage of allocated CPU time used.Sβ width 1 without-w, 1 with-w. the job's state:Bβ Array job has at least one subjob runningEβ Job is exiting after having runFβ Job is finishedHβ Job is heldMβ Job was moved to another serverQβ Job is queuedRβ Job is runningSβ Job is suspendedTβ Job is being moved to new locationUβ Cycle-harvesting job is suspended due to keyboard activityWβ Job is waiting for its submitter-assigned start time to be reachedXβ Subjob has completed execution or has been deleted
Queueβ width 16 without-w, 15 with-w. the queue in which the job resides.
π¦ Job Status in Long Format
Trigger: the -f option.
if you specify the -f (full) option, full job status information for each job is displayed in this order:
- The job ID
- Each job attribute, one to a line
- The job's submission arguments
- The job's executable, in JSDL format
- The executable's argument list, in JSDL format
the job attributes are listed as <name> = <value> pairs. this includes the exec_host and exec_vnode strings. the full output can be very large β like, buckle up, this one's a scroll π
the exec_host string has the format:
<host1>/<T1>*<P1>[+<host2>/<T2>*<P2>+...]
where
T1is the task slot number (the index) of the job onhostA.P1is the number of processors allocated to the job fromhost1. the number of processors allocated does not appear if it is 1.
the exec_vnode string has the format:
(<vnode1>:ncpus=<N1>:mem=<M1>)[+(<vnode2>:ncpus=<N2>:mem=<M2>)+...]
where
N1is the number of CPUs allocated to that job onvnode1.M1is the amount of memory allocated to that job onvnode1.
π Job Status in Alternate Format
Triggers: any of the -a, -i, -G, -H, -M, -n, -r, -s, -T, or -u <user list> options.
the qstat command displays job status in the alternate format if you specify any of the -a, -i, -G, -H, -M, -n, -r, -s, -T, or -u <user list> options. jobs are displayed one to a line. if jobs are running and the -n option is specified, or if jobs are finished or moved and the -H and -n options are specified, there is a second line for the exec_host string. β¨
Column headers:
Req'd Req'd Elap
Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time
------ -------- ----- ------- ------ --- --- ------ ----- - ----
Description of columns:
Job IDβ width 15 without-w(that's 20 whenmax_job_sequence_id > 10 million), and 30 with-w. the job ID assigned by PBS.Usernameβ width 8 without-w, 15 with-w. username of job owner.Queueβ width 8 without-w, 15 with-w. queue in which the job resides.Jobnameβ width 10 without-w, 15 with-w. job name specified by submitter.SessIDβ width 6 without-w, 8 with-w. session ID. appears only if the job is running. πNDSβ width 3 without-w, 4 with-w. number of chunks or vnodes requested by the job.TSKβ width 3 without-w, 5 with-w. number of CPUs requested by the job.Req'd Memoryβ width 6 without-w, 6 with-w. amount of memory requested by the job.Req'd Timeβ width 5 without-w, 5 with-w. if CPU time is requested, this shows CPU time. otherwise, shows walltime.Sβ width 1 without-w, 1 with-w. the job's state. (see the listing above for default format π )Elap TimeorEst Start Timeβ width 5 without-w, 5 with-w. if CPU time is requested, this shows CPU time. otherwise, shows walltime. if you use the-Poption, displays estimated start time for queued jobs, replacing theElap Timefield with theEst Start Timefield. β
π Grouping Jobs and Sorting by ID π
Trigger: the -E option. periodt.
Okay so bestie, the -E option is your new fave for sorting AND grouping jobs in qstat output. What it does: groups jobs by server, and displays each group by ascending ID. Bonus? it also improves qstat performance. Iconic behavior. Here's the vibe check on how -E changes things:
qstat(no job ID specified)- without
-E: queries the default server and displays result - with
-E: no change in behavior; same as without-Eoption
- without
qstat <list of job IDs from single server>- without
-E: displays results in the order specified - with
-E: displays results in ascending ID order
- without
qstat <job IDs at multiple servers>- without
-E: displays results in the order they are specified - with
-E: groups jobs by server. Displays each group in ascending order
- without
β¨ DISPLAYING QUEUE STATUS β¨
π Queue Status in Default Format π
Trigger: the -Q option by itself.
The qstat command displays queue status in the default format if the only option is -Q. Queue status is displayed one queue to a line, with these column headers:
Queue Max Tot Ena Str Que Run Hld Wat Trn Ext Type
----- ---- ---- ---- --- ---- ---- ---- ---- ---- ---- ----
Description of columns, bestie, one by one:
- Queue β queue name
- Max β maximum number of jobs allowed to run concurrently in this queue
- Tot β total number of jobs in the queue
- Ena β whether the queue is enabled or disabled
- Str β whether the queue is started or stopped
- Que β number of queued jobs
- Run β number of running jobs
- Hld β number of held jobs
- Wat β number of waiting jobs
- Trn β number of jobs being moved (transiting)
- Ext β number of exiting jobs
- Type β type of queue: execution or routing
π¦ Queue Status in Long Format π¦
Trigger: the -q and -f options together.
If you specify the -f (full) option with the -q option, full queue status information for each queue is displayed starting with the queue name, followed by each attribute, one to a line, as <name> = <value> pairs. very thorough of her tbh.
πΈ Queue Status: Alternate Format πΈ
Triggers: any of the -q, -G, or -M options.
The qstat command displays queue status in the alternate format if you specify any of the -q, -G, or -M options. Queue status is displayed one queue to a line, and the lowest line contains totals for some columns.
These are the alternate format queue status column headers:
Queue Memory CPU Time Walltime Node Run Que Lm State
----- ------ -------- -------- ---- --- --- -- -----
Description of columns:
- Queue β queue name
- Memory β maximum amount of memory that can be requested by a job in this queue
- CPU Time β maximum amount of CPU time that can be requested by a job in this queue
- Walltime β maximum amount of walltime that can be requested by a job in this queue
- Node β maximum number of vnodes that can be requested by a job in this queue
- Run β number of running and suspended jobs. Lowest row is total number of running and suspended jobs in all the queues shown
- Que β number of queued, waiting, and held jobs. Lowest row is total number of queued, waiting, and held jobs in all the queues shown
- Lm β maximum number of jobs allowed to run concurrently in this queue
- State β state of this queue:
E(enabled) orD(disabled), andR(running) orS(stopped)
π DISPLAYING SERVER STATUS π
π Server Status in Default Format π
Trigger: the -B option.
The qstat command displays server status if the only option given is -B. just the one option, okurrr.
Column headers for default server status output:
Server Max Tot Que Run Hld Wat Trn Ext Status
------ --- --- --- --- --- --- --- --- ------
Description of columns:
- Server β name of server
- Max β maximum number of jobs allowed to be running concurrently on the server
- Tot β total number of jobs currently managed by the server
- Que β number of queued jobs
- Run β number of running jobs
- Hld β number of held jobs
- Wat β number of waiting jobs
- Trn β number of transiting jobs
- Ext β number of exiting jobs
- Status β status of the server
π§ Server Status in Long Format π§
Trigger: the -f option.
If you specify the -f (full) option, displays full server status information starting with the server name, followed by each server attribute, one to a line, as <name> = <value> pairs. Includes PBS version information. she's giving full disclosure, we love that.
π OPTIONS π
β Generic Job Status Options β
-Eβ Groups jobs by server and displays jobs sorted by ascending ID. Whenqstatis presented with a list of jobs, jobs are grouped by server and each group is displayed by ascending ID. This option also improvesqstatperformance.
π Default Job Status Options π
-Jβ Prints status information for job arrays (not subjobs).-tβ Displays status information for jobs, job arrays, and subjobs. When used with-Joption, prints status information for subjobs only.-pβ The Time Use column is replaced with the percentage completed for the job. For an array job this is the percentage of subjobs completed. For a normal job, it is the percentage of allocated CPU time used.-xβ Displays status information for finished and moved jobs in addition to queued and running jobs.
π₯ Alternate Job Status Options π₯
-aβ All queued and running jobs are displayed. If a destination is specified, information for all jobs at that destination is displayed. If a job ID is specified, information about that job is displayed. Always specify this option before the-nor-soptions, otherwise they will not take effect.-Hβ Without a job identifier, displays information for all finished or moved jobs. If a job ID is given, displays information for that job regardless of its state. If a destination is specified, displays information for finished or moved jobs, or specified job(s), at destination.-iβ If a destination is given, information for queued, held or waiting jobs at that destination is displayed. If a job ID is given, information about that job is displayed regardless of its state.-nβ Theexec_hoststring is listed on the line below the basic information. If the-1option is given, theexec_hoststring is listed on the end of the same line. If using the-aoption, always specify the-noption after-a, otherwise the-noption does not take effect.-rβ If a destination is given, information for running or suspended jobs at that destination is displayed. If a job ID is given, information about that job is displayed regardless of its state.-sβ Any comment added by the administrator or scheduler is shown on the line below the basic information. If the-1option is given, the comment string is listed on the end of the same line. If using the-aoption, always specify the-soption after-a, otherwise the-soption does not take effect.-Tβ Displays estimated start time for queued jobs, replacing the Elap Time field with the Est Start Time field. Jobs with earlier estimated start times are displayed before those with later estimated start times.
Running jobs are displayed before other jobs. Running jobs are sorted by their stime attribute (start time).
Queued jobs whose estimated start times are unset (estimated.start_time = unset) are displayed after those with estimated start times, with estimated start time shown as a double dash ("--"). Queued jobs with estimated start times in the past are treated as if their estimated start times are unset.
If a job's estimated start time cannot be calculated, the start time is shown as a question mark ("?").
Time displayed is local to the qstat command. Current week begins on Sunday. (sunday scaries but make it scheduling β¨)
The following table shows the format for the Est Start Time field when the -w option is not used:
<HH>:<MM>β today β example:15:34<2-letter weekday> <HH>β within 7 days, but after today β example:We 15<3-letter month name>β this calendar year, but after this week β example:Feb<YYYY>β less than or equal to 5 years from today, after this year β example:2018>5yrsβ more than 5 years from today β example:>5yrs
The following table shows the format for the Est Start Time field when the -w option is used:
Format Job Est Start Time Example
-------------------------------------------------------------
Today <HH>:<MM> Today Today 13:34
-------------------------------------------------------------
<Day> <HH>:<MM> This week, but Wed 15:34
after today
-------------------------------------------------------------
<Day> <Month> This year, but Wed Feb 10 15:34
<Daynum> <HH>:<MM> after this week
-------------------------------------------------------------
<Day> <Month> After this year Wed Feb 10 2018 15:34
<Daynum> <YYYY>
<HH>:<MM>
-------------------------------------------------------------
So yeah bestie, that's the vibe check for estimated start times π
β it flexes the format based on how far out your job is. And side note: when you pair this with the -f option, it prints the full timezone-qualified start time. β¨
Oh, and lowkey important π«Ά: estimated start time info can be made unavailable to unprivileged users. In that case, the estimated start time just, like, appears to be unset. Not a bug, it's giving permissions. π
-u <user list>β if you give a destination, it shows status for jobs at that destination owned by the users in<user list>. But if you give a job ID instead? It shows status info for that job regardless of who owns it. Main character energy for that job ID tbh π
Format is <username>[@<hostname>][, <username>[@<hostname>], ...] β a comma-separated list, periodt.
You can wildcard hostnames, but not domain names. And if you don't specify a hostname at all, the username is for any host. π
-wβ works with job status in default and alternate formats. It lets you see wider fields, up to120characters. (Peep "Job Status in Default Format" and "Job Status in Alternate Format" for the column widths, iykyk.)
β οΈ Heads up bestie: this<yellow>-w</yellow>is not the same-was the one used with the-flong-format option. Two different-ws, same name, no cap. π
-1(hyphen one) β reformatsqstatoutput onto a single line. It can only be used in conjunction with the-nand/or-soptions. No solo runs, sorry babe. π
β¨ Queue Status Options β¨
-Qβ displays queue status in default format. Operands must be destinations. π-qβ displays queue status in alternate format. Operands must be destinations. π¦
β¨ Server Status Options β¨
-Bβ display server status. Operands must be names of servers. πΈ
β¨ Job, Queue, and Server Status Options β¨
-f [-w]β full display for long format. Job, queue or server attributes get displayed one to a line. Iconic, honestly. π
JSON output: PBS reports resources_used values for resources that are created or set in a hook as JSON strings in the output of qstat -f.
If MoM returns a JSON object (a Python dictionary), PBS reports the value as a string in single quotes:
resources_used.<resource_name> = '{ <mom_JSON_item_value>,
<mom_JSON_item_value>, <mom_JSON_item_value>, ..}'
Example: MoM returns { "a":1, "b":2, "c":1,"d": 4} for resources_used.foo_str. We get:
resources_used.foo_str='{"a": 1, "b": 2, "c":1,"d": 4}'
If MoM returns a value that is not a valid JSON object, the value is reported verbatim.
Example: MoM returns "hello" for resources_used.foo_str. We get:
resources_used.foo_str="hello"
Optional -w prints each attribute on one unbroken line. Feed characters get converted, bestie:
- Newline is converted to backslash concatenated with
"n", resulting in"\n" - Form feed is converted to backslash concatenated with
"f", resulting in"\f"
π«Ά Reminder: this<yellow>-w</yellow>is independent of the-wjob output option used with default and alternate formats. Yes, again. Three-ws in this manpage, we stay confused but we stay slaying.
-F dsv [-D <delimiter>]β prints output in delimiter-separated value format. The default delimiter is a pipe ("|"). You can specify a character or a string delimiter using the-Dargument to the-F dsvoption. For example, to use a comma as the delimeter:
qstat -f -F dsv -D,
If the delimiter itself appears in a value, it gets escaped:
- On Linux, the delimiter is escaped with a backslash (
"\"). - On Windows, the delimiter is escaped with a caret (
"^").
Feed characters are converted:
- Newline is converted to backslash concatenated with
"n", resulting in"\n" - Form feed is converted to backslash concatenated with
"f", resulting in"\f"
A newline separates each job from the next. Using newline as the delimiter leads to undefined behavior. π¨ Don't do it, babe, it's not the vibe.
Example of getting output in delimiter-separated value format:
qstat -f -Fdsv
Job Id: 1.vbox|Job_Name = STDIN|Job_Owner =
root@vbox|job_state = Q|queue = workq|server =
vbox|Checkpoint = u|ctime = Fri Nov 11 17:57:05
2016|Error_Path = ...
-F jsonβ prints output in JSON format (http://www.json.org/). Attribute output is preceded by timestamp, PBS version, and PBS server hostname. Example:
qstat -f F json
{
"timestamp":1479277336,
"pbs_version":"14.1",
"pbs_server":"vbox",
"Jobs":{
"1.vbox":{
"Job_Name":"STDIN",
"Job_Owner":"root@vbox",
"job_state":"Q",
-Gβ shows size in gigabytes. Triggers alternate format. π-Mβ shows size in megawords. A word is considered to be8bytes. Triggers alternate format. π§
π Version Information π
--versionβ theqstatcommand returns its PBS version information and exits. This option can only be used alone. No plus-ones allowed. π
π OPERANDS π
π Job Identifier Operands π
The job ID is assigned by PBS at submission. Job IDs are used only with job status requests. Status information for the specified job(s) is displayed. Formats:
- Job β
<sequence number>[.<server>][@<server>] - Job array β
<sequence number>[][.<server>][@<server>] - Subjob β
<sequence number>[<index>][.<server>][@<server>] - Range of subjobs β
<sequence number>[<start>-<end>][.<server>][@<server>]
π PSA from your girl: some shells require that you enclose a job array identifier in double quotes. The shell will absolutely eat it otherwise, fr fr.
π¦ Destination Operands π¦
Name of queue, name of server, or name of queue at a specific server. Formats:
- queue name β specifies name of queue for job or queue display.
- When displaying job status, PBS displays status for all jobs in the specified queue at the default server.
- When displaying queue status, PBS displays status for the specified queue at the default server.
- queue name@server name β specifies name of queue at server for job or queue display.
- When displaying job status, PBS displays status for all jobs in the specified queue at the specified server.
- When displaying queue status, PBS displays status for the specified queue at the specified server.
- @server name β specifies server name for job or queue display.
- When displaying job status, PBS displays status for all jobs at all queues at the specified server.
- When displaying queue status, PBS displays status for all queues at the specified server.
- server name β specifies server name for server display.
- When displaying server status (with the
-Boption) PBS displays status for the specified server.
- When displaying server status (with the
π STANDARD ERROR π
The qstat command writes a diagnostic message to standard error for each error occurrence. So if something goes wrong, bestie, it'll tell you. Multiple times if you're really committed to the chaos. π
β EXIT STATUS β
- Zero β upon successful processing of all operands. Slay! π
- Greater than zero β if any operands could not be processed. Not the vibe, but at least you know. π«Ά
πΈ SEE ALSO πΈ
qalter(1B), qsub(1B), pbs_alterjob(3B), pbs_statjob(3B), pbs_statque(3B), pbs_statserver(3B), pbs_submit(3B), pbs_job_attributes(7B), pbs_queue_attributes(7B), pbs_server_attributes(7B), pbs_resources(7B) β the whole friend group right there, go say hi. π―β¨
And that's a wrap on qstat(1B), bestie! π This little masterpiece is filed under Local, dated 6 May 2020, and it's the qstat(1B) page you've been reading this whole time. Go forth and stat your heart out β you're literally so good at this. π
π₯ periodt. π
π¦ where this page comes from
- nixos 26.05: openpbs 23.06.06-unstable-2026-04-02
- nixpkgs unstable: openpbs 23.06.06-unstable-2026-04-02
- Copyright (C) 1994-2021 Altair Engineering, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms