QTCSH(1)

✨ QTCSH(1) β€” Grid Engine User Commands ✨

okay bestie, sit down, hydrate, because this one is so good. it's qtcsh, the Grid Engine user command that's literally just your fave tcsh but with transparent remote execution through qrsh. yes. she does it all. πŸ’…


🌸 NAME 🌸

qtcsh β€” tcsh with transparent remote execution by use of qrsh


πŸŽ€ SYNTAX πŸŽ€

qtcsh [ tcsh options | -ABLR ]

πŸ’– DESCRIPTION πŸ’–

so Qtcsh is an extension to csh(1)'s very popular derivative tcsh. she lets you transparently remote-execute the commands you type into qtcsh, all controlled via Grid Engine. and the range?? immaculate. Qtcsh works as an interactive command interpreter and for processing tcsh shell scripts. versatile queen. πŸ‘‘

when she's invoked, qtcsh figures out which commands are gonna run remotely and which ones are staying home. how, you ask? by processing these two files:

  • <sge_root>/<cell>/common/qtask
  • ~/.qtask

each line in these files defines a command that's intended to run remotely (peep qtask(5) for the actual file format definition, no gatekeeping). the .qtask file in the user's home directory holds that user's remote task specification, while the file in the common directory is the admin's and defines a cluster-wide default behavior. πŸ’«

and here's the tea on precedence: the contents of the admin-supplied qtask(5) file get completely overridden if there's a matching entry in the user's qtask(5) file. but β€” plot twist β€” that override is prevented if an exclamation mark is prefixed to the command name in the administrator's qtask file. periodt.

Qtcsh always attempts to start the designated tasks remotely via qrsh(1). the exceptions are, like:

  • if the user enters such commands via a relative or absolute pathname instead of the stand-alone command name (go read qtask(5) for more info, i promise it slaps);
  • if the environment variable JOB_ID is set, in which case qtcsh assumes execution already happens remotely inside a Grid Engine job and therefore executes tasks locally. this avoids unwanted recursions, but you can override it with the command-line option -R and the built-in command qrshmode -R (descriptions below, keep scrolling babe);
  • if qtcsh cannot establish a connection to Grid Engine during start-up. which is lowkey a serve, because it means you can use qtcsh as a login shell without the danger of being blocked when no Grid Engine service is available. 🫢

Qtcsh can operate in three different modes, which determine whether:

  • tasks are executed remotely;
  • immediate or batch execution is requested;
  • status output is verbose or only shown in case of any errors.

and you control these modes either with the command-line switches described below at qtcsh invocation time, or from inside a running qtcsh via the built-in command qrshmode β€” see the BUILT-IN COMMANDS section. πŸ’…


πŸ”₯ OPTIONS πŸ”₯

the options below are specific to qtcsh. for everything else, the user is referred to the tcsh(1) documentation, she has the range.

  • -A β€” switches qtcsh into verbose mode, causing diagnostic output in case of remote execution. not me wanting all the details πŸ’€
  • -B β€” switches remote task execution into batch mode. tasks submitted to Grid Engine will be queued if they cannot start immediately. as a consequence, qtcsh may block until the queued task can be started by Grid Engine. while this behavior probably is undesirable during an interactive session, it may be very useful for execution of shell scripts through qtcsh, since it avoids failure of the scripts due to temporarily unavailable resources for particular tasks. iconic for scripts, annoying for vibing.
  • -L β€” switches off the default behavior of remote execution of commands. causes all commands to be executed locally even if they are contained in one of the qtask(5) files. staying home era 🏠
  • -R β€” enforces remote execution of commands even if JOB_ID is set as environment variable. no cap, she will go remote.

πŸ¦‹ BUILT-IN COMMANDS πŸ¦‹

this section only describes additional shell builtin commands which are not available in standard tcsh(1). exclusive content only ✨

qrshmode [-ANBILR]

without options, the current operational mode of qtcsh is displayed. the options have the following effect:

  • -A β€” switch to verbose output mode
  • -N β€” switch to non-verbose output mode
  • -B β€” switch to batch execution mode
  • -I β€” switch to immediate execution mode
  • -L β€” always execute commands locally
  • -R β€” execute configured commands remotely

🌈 ENVIRONMENT VARIABLES 🌈

  • SGE_ROOT β€” specifies the location of the Grid Engine standard configuration files.
  • SGE_CELL β€” if set, specifies the default Grid Engine cell. to address a Grid Engine cell qtcsh uses (in the order of precedence):
    • the name of the cell specified in the environment variable SGE_CELL, if it is set.
    • the name of the default cell, i.e. default.
  • SGE_DEBUG_LEVEL β€” if set, specifies that debug information should be written to stderr. in addition, the level of detail in which debug information is generated is defined. detective mode πŸ”
  • SGE_QMASTER_PORT β€” if set, specifies the tcp port on which sge_qmaster(8) is expected to listen for communication requests. most installations will use a services map entry for the service sge_qmaster instead to define that port.
  • JOB_ID β€” if set when starting qtcsh, the local operation mode is activated implicitly as if the -L option was specified.

πŸŽ€ FILES πŸŽ€

  • ~/.qtask β€” user qtask file.
  • <sge_root>/<cell>/common/qtask β€” cluster qtask file.

⭐ SEE ALSO ⭐

sge_intro(1), qrsh(1), qtask(5) as well as tcsh(1).


Qtcsh is an adaptation of tcsh which is copyrighted by The Regents of the University of California.

see sge_intro(1) and the information provided in <sge_root>/doc/LICENCES for a statement of further rights and permissions.


okay that's the whole page, bestie, you ate that reading session fr fr 🫢 this was SGE 8.1.3pre, dated 2011-10-21 β€” she's a vintage icon and she still slays. mwah πŸ’‹ bye babes πŸ¦‹βœ¨