QSELECT(1POSIX)
๐ QSELECT(1POSIX) ๐
okay bestie, sit down, hydrate, because we're about to read the manual page for qselect from the POSIX Programmer's Manual and honestly? it's giving bureaucratic but make it slay ๐
โจ PROLOG โจ
Real talk first: this manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ โ so pls consult the corresponding Linux manual page for details of Linux behavior โ or, plot twist, the interface may not be implemented on Linux at all. ๐ So vibe check your platform first, iykyk.
๐ธ NAME ๐ธ
qselect โ select batch jobs
that's it, that's the name, short and iconic.
๐ฆ SYNOPSIS ๐ฆ
qselect [-a [op]date_time] [-A account_string] [-c [op]interval]
[-h hold_list] [-l resource_list] [-N name] [-p [op]priority]
[-q destination] [-r y|n] [-s states] [-u user_list]
look at all those options bestie, she's got RANGE ๐ฅ
๐ DESCRIPTION ๐
So here's the tea. To select a set of batch jobs is to return the batch job_identifiers for each batch job that meets a list of selection criteria. A set of batch jobs is selected by a request to a batch server. The qselect utility is a user-accessible batch client that requests the selection of batch jobs. she's the middleman, the liaison, the girl in the group chat who asks the server for the receipts.
Upon successful completion, the qselect utility shall have returned a list of zero or more batch job_identifiers that meet the criteria specified by the options and option-arguments presented to the utility. (zero is a valid answer bestie, don't take it personally ๐ญ)
The qselect utility shall select batch jobs by sending a Select Jobs Request to a batch server. The qselect utility shall not exit until the server replies to each request generated. so she WAITS. she's loyal. she's not leaving until every request gets its reply ๐ซถ
For each option presented to the qselect utility, the utility shall restrict the set of selected batch jobs as described in the OPTIONS section.
The qselect utility shall not restrict selection of batch jobs except by authorization and as required by the options presented to the utility. no extra gatekeeping, no secret rules, she's fair โจ
When an option is specified with a mandatory or optional op component to the option-argument, then op shall specify a relation between the value of a certain batch job attribute and the value component of the option-argument. If an op is allowable on an option, then the description of the option letter indicates the op as either mandatory or optional. Acceptable strings for the op component, and the relation the string indicates, are shown in the following list:
.eq.โ The value represented by the attribute of the batch job is equal to the value represented by the option-argument..ge.โ The value represented by the attribute of the batch job is greater than or equal to the value represented by the option-argument..gt.โ The value represented by the attribute of the batch job is greater than the value represented by the option-argument..lt.โ The value represented by the attribute of the batch job is less than the value represented by the option-argument..le.โ The value represented by the attribute of the batch job is less than or equal to the value represented by the option-argument..ne.โ The value represented by the attribute of the batch job is not equal to the value represented by the option-argument.
memorize these six, they're the whole personality of the op component ๐
๐ OPTIONS ๐
The qselect utility shall conform to the Base Definitions volume of POSIX.1โ2017, Section 12.2, Utility Syntax Guidelines.
The following options shall be supported by the implementation:
-a [op]date_timeโ Restrict selection to a specific time, or a range of times.
The qselect utility shall select only batch jobs for which the value of the Execution_Time attribute is related to the Epoch equivalent of the local time expressed by the value of the date_time component of the option-argument in the manner indicated by the value of the op component of the option-argument.
The qselect utility shall accept a date_time component of the option-argument that conforms to the syntax of the time operand of the touch utility. (yes, that touch. the file-stamp one. same time syntax energy โจ)
If the op component of the option-argument is not presented to the qselect utility, the utility shall select batch jobs for which the Execution_Time attribute is equal to the date_time component of the option-argument.
When comparing times, the qselect utility shall use the following definitions for the op component of the option-argument:
.eq.โ The time represented by value of theExecution_Timeattribute of the batch job is equal to the time represented by thedate_timecomponent of the option-argument..ge.โ The time represented by value of theExecution_Timeattribute of the batch job is after or equal to the time represented by thedate_timecomponent of the option-argument..gt.โ The time represented by value of theExecution_Timeattribute of the batch job is after the time represented by thedate_timecomponent of the option-argument..lt.โ The time represented by value of theExecution_Timeattribute of the batch job is before the time represented by thedate_timecomponent of the option-argument..le.โ The time represented by value of theExecution_Timeattribute of the batch job is before or equal to the time represented by thedate_timecomponent of the option-argument..ne.โ The time represented by value of theExecution_Timeattribute of the batch job is not equal to the time represented by thedate_timecomponent of the option-argument.
The qselect utility shall accept the defined character strings for the op component of the option-argument.
-A account_stringโ Restrict selection to the batch jobs charging a specified account.
The qselect utility shall select only batch jobs for which the value of the Account_Name attribute of the batch job matches the value of the account_string option-argument.
The syntax of the account_string option-argument is unspecified. yep, unspecified, they really just left it open like that ๐
-c [op]intervalโ Restrict selection to batch jobs within a range of checkpoint intervals.
The qselect utility shall select only batch jobs for which the value of the Checkpoint attribute relates to the value of the interval component of the option-argument in the manner indicated by the value of the op component of the option-argument.
If the op component of the option-argument is omitted, the qselect utility shall select batch jobs for which the value of the Checkpoint attribute is equal to the value of the interval component of the option-argument.
When comparing checkpoint intervals, the qselect utility shall use the following definitions for the op component of the option-argument:
.eq.โ The value of theCheckpointattribute of the batch job equals the value of theintervalcomponent of the option-argument..ge.โ The value of theCheckpointattribute of the batch job is greater than or equal to the value of theintervalcomponent option-argument..gt.โ The value of theCheckpointattribute of the batch job is greater than the value of theintervalcomponent option-argument..lt.โ The value of theCheckpointattribute of the batch job is less than the value of theintervalcomponent option-argument..le.โ The value of theCheckpointattribute of the batch job is less than or equal to the value of theintervalcomponent option-argument..ne.โ The value of theCheckpointattribute of the batch job does not equal the value of theintervalcomponent option-argument.
The qselect utility shall accept the defined character strings for the op component of the option-argument.
The ordering relationship for the values of the interval option-argument is defined to be:
`n' .gt. `s' .gt. `c=minutes' .ge. `c'
When comparing Checkpoint attributes with an interval having the value of the single character 'u', only equality or inequality are valid comparisons. don't try anything fancy with 'u', she's a simple girl ๐
-h hold_listโ Restrict selection to batch jobs that have a specific type of hold.
The qselect utility shall select only batch jobs for which the value of the Hold_Types attribute matches the value of the hold_list option-argument.
The qselect -h option shall accept a value for the hold_list option-argument that is a string of alphanumeric characters in the portable character set (see the Base Definitions volume of POSIX.1โ2017, Section 6.1, Portable Character Set).
The qselect utility shall accept a value for the hold_list option-argument that is a string of one or more of the characters 'u', 's', or 'o', or the single character 'n'.
Each unique character in the hold_list option-argument of the qselect utility is defined as follows, each representing a different hold type:
uโ USERsโ SYSTEMoโ OPERATOR
If any of these characters are duplicated in the hold_list option-argument, the duplicates shall be ignored. repetition is allowed but she's not gonna read into it, okay?
Theqselectutility shall consider it an error if any hold type other than'n'is combined with hold type'n'. like, actual error. don't do it. ๐จ
Strictly conforming applications shall not repeat any of the characters 'u', 's', 'o', or 'n' within the hold_list option-argument. The qselect utility shall permit the repetition of characters, but shall not assign additional meaning to the repeated characters.
An implementation may define other hold types. The conformance document for an implementation shall describe any additional hold types, how they are specified, their internal behavior, and how they affect the behavior of the utility.
-l resource_listโ Restrict selection to batch jobs with specified resource limits and attributes.
The qselect utility shall accept a resource_list option-argument with the following syntax:
resource_name op value [,,resource_name op value,, ...]
So when we're comparing resource values, qselect uses these definitions for the op part of the option-argument, and honestly bestie, memorize these, they're the whole personality of the tool:
.eq.โ the value of the resource of the same name in theResource_Listattribute of the batch job equals the value component of the option-argument. ๐.ge.โ the value in theResource_Listattribute is greater than or equal to the value component of the option-argument..gt.โ the value in theResource_Listattribute is greater than the value component of the option-argument..lt.โ the value in theResource_Listattribute is less than the value component of the option-argument..ne.โ the value in theResource_Listattribute does not equal the value component of the option-argument..le.โ the value in theResource_Listattribute is less than or equal to the value component of the option-argument.
๐จ Real talk, no cap: when you're comparing the limit of a Resource_List attribute against the value component of the option-argument, if the limit, the value, or <em>both</em> of them are non-numeric, then only equality or inequality are valid comparisons. Don't try to be cute with ordering on non-numbers, it's not giving. ๐
qselect shall select only batch jobs for which the values of the resource_names listed in the resource_list option-argument match the corresponding limits of the Resource_List attribute of the batch job. ๐ฏ
And lowkey important: limits of resource_names that are present in the Resource_List attribute of the batch job but have no corresponding values in the resource_list option-argument? Those shall not be considered when selecting batch jobs. They're just there, minding their business, unbothered. ๐ง
-Nname โ restrict selection to batch jobs with a specified name. ๐ท๏ธ
qselect shall select only batch jobs for which the value of the Job_Name attribute matches the value of the name option-argument. The string you put in the name option-argument gets passed, uninterpreted, straight to the server โ so an implementation is free to match ``wildcard'' patterns against batch job names. โจ
An implementation shall describe in the conformance document exactly what format it supports for matching against the Job_Name attribute. (So check the docs, bestie, it varies. iykyk.)
-p[op]priority โ restrict selection to batch jobs of the specified priority or range of priorities. ๐๏ธ
qselect shall select only batch jobs for which the value of the Priority attribute of the batch job relates to the value of the priority component of the option-argument in the manner indicated by the value of the op component of the option-argument.
If the op component of the option-argument is omitted, qselect shall select batch jobs for which the value of the Priority attribute of the batch job is equal to the value of the priority component of the option-argument.
When comparing priority values, qselect uses these definitions for the op component of the option-argument:
.eq.โ the value of thePriorityattribute of the batch job equals the value of the priority component of the option-argument..ge.โ the value of thePriorityattribute of the batch job is greater than or equal to the value of the priority component option-argument..gt.โ the value of thePriorityattribute of the batch job is greater than the value of the priority component option-argument..lt.โ the value of thePriorityattribute of the batch job is less than the value of the priority component option-argument..lt.โ the value of thePriorityattribute of the batch job is less than or equal to the value of the priority component option-argument..ne.โ the value of thePriorityattribute of the batch job does not equal the value of the priority component option-argument.
-qdestination โ restrict selection to the specified batch queue or server, or both. ๐
qselect shall select only batch jobs that are located at the destination indicated by the value of the destination option-argument.
The destination defines a batch queue, a server, or a batch queue at a server. All three, it's flexible like that. ๐
qselect shall accept an option-argument for the -q option that conforms to the syntax for a destination. If the -q option is not presented to qselect, the utility shall select batch jobs from all batch queues at the default batch server.
If the option-argument describes only a batch queue, qselect shall select only batch jobs from the batch queue of the specified name at the default batch server. The means by which qselect determines the default server is implementation-defined.
If the option-argument describes only a batch server, qselect shall select batch jobs from all the batch queues at that batch server.
If the option-argument describes both a batch queue and a batch server, qselect shall select only batch jobs from the specified batch queue at the specified server. Iconic. ๐
-ry|n โ restrict selection to batch jobs with the specified rerunability status. ๐
qselect shall select only batch jobs for which the value of the Rerunable attribute of the batch job matches the value of the option-argument.
qselect shall accept a value for the option-argument that consists of either the single character 'y' or the single character 'n'. The character 'y' represents the value TRUE, and the character 'n' represents the value FALSE. Binary, but make it a single char. ๐
-sstates โ restrict selection to batch jobs in the specified states. ๐ฆ
qselect shall accept an option-argument that consists of any combination of the characters 'e', 'q', 'r', 'w', 'h', and 't'.
Conforming applications shall not repeat any character in the option-argument. qselect shall permit the repetition of characters in the option-argument, but shall not assign additional meaning to repeated characters. (So qqq is just q, bestie. Chill. ๐)
qselect shall interpret the characters in the states option-argument as follows:
eโ represents the EXITING state.qโ represents the QUEUED state.rโ represents the RUNNING state.tโ represents the TRANSITING state.hโ represents the HELD state.wโ represents the WAITING state.
For each character in the states option-argument, qselect shall select batch jobs in the corresponding state. โจ
-uuser_list โ restrict selection to batch jobs owned by the specified user names. ๐ซถ
qselect shall select only the batch jobs of those users specified in the user_list option-argument.
qselect shall accept a user_list option-argument that conforms to the following syntax:
username[@host][,,username[@host],, ...]
qselect shall accept only one user name that is missing a corresponding host name. qselect shall accept only one user name per named host.
๐ OPERANDS ๐
None. That's it, that's the whole section. Nothing to see here. ๐
๐ธ STDIN ๐ธ
Not used. She does not read from stdin, she's not nosy like that.
๐ INPUT FILES ๐
None. Zero. Nada. ๐
๐ ENVIRONMENT VARIABLES ๐
These env vars shall affect how qselect runs, so listen up:
LANGโ provides a default value for the internationalization variables that are unset or null. (See the Base Definitions volume of POSIX.1โ2017, Section 8.2, Internationalization Variables, for the precedence of internationalization variables used to determine the values of locale categories.) ๐LC_ALLโ if set to a non-empty string value, overrides the values of all the other internationalization variables. She's the main character fr fr.LC_CTYPEโ determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multi-byte characters in arguments). ๐คLC_MESSAGESโ determines the locale that should be used to affect the format and contents of diagnostic messages written to standard error. ๐ฌLOGNAMEโ determines the login name of the user. ๐ชชTZโ determines the timezone used to interpret thedate-timeoption-argument. IfTZis unset or null, an unspecified default timezone shall be used. ๐ฐ๏ธ
โก ASYNCHRONOUS EVENTS โก
Default. ๐
โญ STDOUT โญ
qselect shall write zero or more batch job_identifiers to standard output.
qselect shall separate the batch job_identifiers written to standard output by white space.
qselect shall write batch job_identifiers in the following format:
sequence_number.server_name@server
Exact format, character for character, don't freestyle it. ๐ฅ
๐ฉท STDERR ๐ฉท
The standard error shall be used only for diagnostic messages. That's her venting channel, nothing else. ๐ญ
๐ฆ OUTPUT FILES ๐ฆ
None.
๐ง EXTENDED DESCRIPTION ๐ง
None.
๐ EXIT STATUS ๐
The following exit values shall be returned:
0โ successful completion. Slay. โ>0โ an error occurred. ๐
๐ธ CONSEQUENCES OF ERRORS ๐ธ
Default.
The following sections are informative.
๐ APPLICATION USAGE ๐
None.
โจ EXAMPLES โจ
Okay so here's the iconic move โ a user might use qselect together with qdel to delete all of their jobs in the queued state without touching any jobs that are already running:
qdel $(qselect -s q)
or, the other flavor:
qselect -s q || xargs qdel
Both ate, honestly. Pick your fighter. ๐
โจ RATIONALE โจ
Okay bestie, so here's the lore ๐. The qselect utility lets users acquire a list of job identifiers that match user-specified selection criteria. The list of identifiers returned by qselect conforms to the syntax of the batch job identifier list processed by a utility such as qmove, qdel, and qrls. So qselect is literally a powerful tool for causing another batch system utility to act upon a set of jobs that match a list of selection criteria. No cap.
The options of qselect let the user apply a number of useful filters for selecting jobs. Each option further restricts the selection of jobs. Many of the selection options allow the specification of a relational operator. The FORTRAN-like syntax of the operatorโthat is, .lt.โwas chosen rather than the C-like <= meta-characters. It's giving old-school but make it work ๐
.
Now let's talk option by option, because every single one matters:
-aโ lets users restrict the selected jobs to those that have been submitted (or altered) to wait until a particular time. The time period is determined by the argument of this option, which includes both a time and an operatorโit is thus possible to select jobs waiting until a specific time, jobs waiting until after a certain time, or those waiting for a time before the specified time. Time and operator, bestie โจ.-Aโ lets users restrict the selected jobs to those that have been submitted (or altered) to charge a particular account. Accountable behavior, we love to see it ๐ซถ.-cโ lets users restrict the selected jobs to those whose checkpointing interval falls within the specified range. Checkpointing? Iconic.-lโ lets users select those jobs whose resource limits fall within the range indicated by the value of the option. For example, a user could select those jobs for which the CPU time limit is greater than two hours. Two hours! That's a whole movie, bestie ๐.-Nโ lets users select jobs by job name. For instance, all the parts of a task that have been divided in parallel jobs might be given the same name, and thus manipulated as a group by means of this option. Group chat energy fr fr.-qโ lets users select jobs in a specified queue. Queue up, bestie ๐ .-rโ lets users select only those jobs with a specified rerun criteria. For instance, a user might select only those jobs that can be rerun for use with theqrerunutility. Rerun slay.-sโ lets users select only those jobs that are in a certain state. State check! Vibe check!-uโ lets users select jobs that have been submitted to execute under a particular account. Undercover? No, just under an account ๐.
The selection criteria provided by the options of the qselect utility allow users to select jobs based on all the appropriate attributes that can be assigned to jobs by the qsub utility. So the selection criteria let users pick jobs based on all the appropriate attributes that the qsub utility can assign to jobs. Matching energy ๐.
Historically, the qselect utility has not been a part of existing practice; it is an improvement that has been introduced in this volume of POSIX.1โ2017. New girl on the block, but make it standards-track ๐.
๐ฎ FUTURE DIRECTIONS ๐ฎ
The qselect utility may be removed in a future version. Not me reading this and getting preemptively nostalgic ๐ญ. But that's what the standard says, bestie. Keep it in mind.
๐ SEE ALSO ๐
- Chapter 3, Batch Environment Services,
qdel,qrerun,qrls,qselect,qsub,touch - The Base Definitions volume of
POSIX.1โ2017, Section 6.1, Portable Character Set, Chapter 8, Environment Variables, Section 12.2, Utility Syntax Guidelines
๐ COPYRIGHT ๐
Okay so legal besties, here's the exact tea โ:
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .
Any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. To report such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .
And that's the whole page, bestie. This manual page is from IEEE/The Open Group, 2017, and it's the QSELECT(1POSIX) page. Stay slaying, keep your job identifiers close, and may all your filters be fruitful ๐โจ๐.
๐ฆ where this page comes from
- debian bookworm: manpages-posix 2017a-2 ยท Other
- debian trixie: manpages-posix 2017a-2 ยท Other
- ubuntu jammy: manpages-posix 2017a-2 ยท Other
- ubuntu noble: manpages-posix 2017a-2 ยท Other
- ubuntu resolute: manpages-posix 2017a-2build1 ยท Other
- ubuntu stonking: manpages-posix 2017a-2.1 ยท Other
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms