QHOLD(1P)

πŸ’– QHOLD(1P) β€” the POSIX Programmer's Manual, bestie edition πŸ’–

okay so first things first, this page lives in the POSIX Programmer's Manual (that's the 1P part of the name, iykyk). ✨


🌸 PROLOG 🌸

bestie. listen. 😭 This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ β€” so like, consult the corresponding Linux manual page for the deets on Linux behavior, mkay? Or honestly? The interface may not even be implemented on Linux at all. vibe check failed on that one. πŸ’€


✨ NAME ✨

qhold β€” hold batch jobs πŸ›‘


πŸŽ€ SYNOPSIS πŸŽ€

qhold [-h hold_list] job_identifier...

πŸ’… DESCRIPTION πŸ’…

okay so here's the whole situation. A hold gets placed on a batch job when a request goes to the batch server that manages that batch job. And a batch job that has one or more holds? Not eligible for execution. Periodt. 🚫

The qhold utility is a user-accessible client of batch services that requests one or more types of hold to be placed on one or more batch jobs.

The qhold utility shall place holds on those batch jobs for which a batch job_identifier is presented to the utility.

It does this in order, bestie β€” the qhold utility shall place holds on batch jobs in the order in which their batch job_identifiers are presented to it. And if qhold fails to process any batch job_identifier successfully? It doesn't just give up and spiral 😀 β€” the utility shall proceed to process the remaining batch job_identifiers, if any.

It places holds on each batch job by sending a Hold Job Request to the batch server that manages the batch job.

And it shall not exit until holds have been placed on the batch job corresponding to each successfully processed batch job_identifier. Like, she waits. main character patience. πŸ‘‘


🌈 OPTIONS 🌈

The qhold utility shall conform to the Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines.

The following option shall be supported by the implementation:

  • -h hold_list β€” Define the types of holds to be placed on the batch job.

The qhold -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 qhold 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'.

For each unique character in the hold_list option-argument, the qhold utility shall add a value to the Hold_Types attribute of the batch job as follows β€” each one is a different hold type, bestie:

  • u β€” USER
  • s β€” SYSTEM
  • o β€” OPERATOR

If any of these characters are duplicated in the hold_list option-argument, the duplicates shall be ignored. (she's not petty, she just moves on πŸ’…)

An existing Hold_Types attribute can be cleared by the following hold type:

  • n β€” NO_HOLD

The qhold utility shall consider it an error if any hold type other than 'n' is combined with hold type 'n'. 🚨 like, do NOT mix them, that's not the move.

Strictly conforming applications shall not repeat any of the characters 'u', 's', 'o', or 'n' within the hold_list option-argument. The qhold utility shall permit the repetition of characters, but shall not assign additional meaning to the repeated characters. (so like, she'll allow it, but she's not gonna reward it πŸ’€)

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.

If the -h option is not presented to the qhold utility, the implementation shall set the Hold_Types attribute to USER.


πŸ¦‹ OPERANDS πŸ¦‹

The qhold utility shall accept one or more operands that conform to the syntax for a batch job_identifier (see Section 3.3.1, Batch Job Identifier).


⭐ STDIN ⭐

Not used. she's not reading anything from you, bestie. πŸ™ˆ


πŸ“ INPUT FILES πŸ“

None.


πŸ’œ ENVIRONMENT VARIABLES πŸ’œ

The following environment variables shall affect the execution of qhold:

  • LANG β€” Provide 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, override the values of all the other internationalization variables. (she overrides. obviously. πŸ‘‘)
  • LC_CTYPE β€” Determine 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 β€” Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard error.
  • LOGNAME β€” Determine the login name of the user.

🧚 ASYNCHRONOUS EVENTS 🧚

Default.


🌸 STDOUT 🌸

None.


πŸ”₯ STDERR πŸ”₯

The standard error shall be used only for diagnostic messages.


πŸŽ€ 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 🚨

In addition to the default behavior, the qhold utility shall not be required to write a diagnostic message to standard error when the error reply received from a batch server indicates that the batch job_identifier does not exist on the server. Whether or not the qhold utility waits to output the diagnostic message while attempting to locate the job on other servers is implementation-defined.

The following sections are informative.


πŸ’… APPLICATION USAGE πŸ’…

None.


πŸ¦‹ EXAMPLES πŸ¦‹

None.


⭐ RATIONALE ⭐

The qhold utility allows users to place a hold on one or more jobs. A hold makes a batch job ineligible for execution.

The qhold utility has options that allow the user to specify the type of hold. Should the user wish to place a hold on a set of jobs that meet a selection criteria, such a list of jobs can be acquired using the qselect utility. (yes bestie, go check qselect, they're a duo 🫢)

The -h option allows the user to specify the type of hold that is to be placed on the job. This option allows for USER, SYSTEM, OPERATOR, and implementation-defined hold types. The USER and OPERATOR holds are distinct. The batch server that manages the batch job will verify that the user is authorized to set the specified hold for the batch job. (permission check, no cap πŸ”)

Mail is not required on hold because the administrator has the tools and libraries to build this option if he or she wishes.

Historically, the qhold utility has been a part of some existing batch systems, although it has not traditionally been a part of the NQS.


πŸ‘€ FUTURE DIRECTIONS πŸ‘€

The qhold utility may be removed in a future version. πŸ’€ yeah. she said what she said.


🌈 SEE ALSO 🌈

Chapter 3, Batch Environment Services, qselect

The Base Definitions volume of POSIX.1‐2017, Section 6.1, Portable Character Set, Chapter 8, Environment Variables, Section 12.2, Utility Syntax Guidelines


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 🫢 written up by IEEE/The Open Group back in 2017 β€” yeah, the copyright holder and date at the bottom of the original, we're shouting them out right here instead of copy-pasting the footer. ily, go hold some jobs πŸ’–βœ¨

πŸ“¦ where this page comes from