CONDOR_WHO(1)

πŸ’– CONDOR_WHO πŸ’–

part of the HTCondor Manual (✨ the iconic encyclopedia ✨)

🌸 NAME 🌸

condor_who β€” bestie, this one spills the tea on who owns the jobs and what jobs are running on an execute machine. Like, it's the group chat admin of process info. πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

condor_who [help options] [daemon options] [address options] [display options]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so condor_who literally queries and shows you deets about the user who owns the jobs running on a machine. It's designed to be run on an execute machine β€” that's its whole vibe, that's its moment. πŸ’…

The options you can hand to condor_who come in four little friend groups:

  • Help options β€” they tell you stuff about the condor_who tool itself.
  • Daemon options β€” these show you info about HTCondor daemons instead of running jobs, and they do not query the condor_startd.
  • Address options β€” these let you specify where the query is headed.
  • Display options β€” these control the formatting and which of the queried info actually gets shown.

At any single moment, only one help option, one daemon option, and one address option may be specified. Display options though? Go off. Any number of them. No cap. πŸ’―

condor_who gets its job info by talking to one or more condor_startd daemons. So it has got to identify the command port of any condor_startd daemons. An address option provides that info. And if no address option shows up on the command line, then condor_who goes on a lil scavenger hunt in this exact order:

  1. A defined value of the environment variable CONDOR_CONFIG specifies the directory where log and address files are to be scanned for the needed info.
  2. With the goal of finding all condor_startd daemons, condor_who uses the same algorithm it would use with the -allpids option. The Linux ps or the Windows tasklist program grabs all PIDs. As Linux root or Windows administrator, the Linux lsof or the Windows netstat identifies open sockets, and from there, the PIDs of listen sockets. Correlating the two lists of PIDs results in identifying the command ports of all condor_startd daemons.

✨ OPTIONS ✨

  • -help β€” (help option) Display usage information. Your little "what do I do now" safety net. 🫢
  • -daemons β€” (daemon option) Display information about the daemons running on the specified machine, including the daemon's PID, IP address, and command port. In this mode condor_who does not query condor_startd daemons for running jobs. It's just the daemons, being daemons. 🌈
  • -quickdaemons β€” (daemon option) Query the condor_master for its readiness ClassAd and display it. If the condor_master is not running, report the last known condor_master address and the condor_master exit code instead. Just like -daemons, this option does not query the condor_startd for running jobs. Fast and nosy. πŸ’¨
  • -wait-for-ready[:seconds] expression β€” (daemon option) Query the condor_master for its readiness ClassAd and wait up to seconds seconds for the given ClassAd expression to evaluate to true against that ad. The short form -wait is equivalent. If the optional seconds timeout is omitted, condor_who will not wait β€” it'll just report the current value of expression. And same as with -quickdaemons, the condor_startd is not queried for jobs. Patient queen energy. ⏳
  • -diagnostic β€” (help option) Display extra information helpful for debugging. For when something's acting sus and you need the receipts. πŸ”
  • -verbose β€” (help option) Display PIDs and addresses of daemons. More words, more details, more chaos. πŸ“’
  • -address hostaddress β€” (address option) Identify the condor_startd host address to query. Point it at the target, bestie. 🎯
  • -allpids β€” (address option) Query all local condor_startd daemons. The whole squad. πŸ‘―
  • -logdir directoryname β€” (address option) Specifies the directory containing log and address files that condor_who will scan to search for command ports of condor_start daemons to query. πŸ“‚
  • -pid PID β€” (address option) Use the given PID to identify the condor_startd daemon to query. One specific daemon, singled out, main character. 🌟
  • -long β€” (display option) Display entire ClassAds. The unabridged director's cut. πŸ“œ
  • -jobs β€” (display option) Display the job ClassAds running on the condor_startd rather than the slot ClassAds. Useful with -long to inspect job attributes as seen by the execute machine. πŸ‘€
  • -startd β€” (display option) Display the condor_startd daemon ClassAd rather than the slot ClassAds. Switch the camera angle. πŸŽ₯
  • -constraint expression β€” (display option) Restrict the displayed ClassAds to those for which the ClassAd expression evaluates to true. Filtering, but make it glam. βœ‚οΈ
  • -limit number β€” (display option) Limit the number of ClassAds returned by the condor_startd to at most number. Set boundaries, periodt. 🚧
  • -snapshot[:details] β€” (display option) Request a snapshot of the condor_startd's internal state, including slot ClassAds that would not normally be advertised (for example, slots without a running job). The optional details argument gets passed to the condor_startd to select which internal ClassAds are returned; the default is 1. Most useful in combination with -long. Behind-the-scenes lore drop. πŸ“Έ
  • -statistics WhichStatistics β€” (display option) Identifies which Statistics attributes to include in the condor_startd ClassAd. WhichStatistics is specified using the same syntax as defined for STATISTICS_TO_PUBLISH. πŸ“Š
  • -wide β€” (display option) Displays fields without truncating them in order to fit screen width. Let the content breathe, no cropping bestie. πŸ–₯️
  • -format fmt attr β€” (display option) Display attribute attr in format fmt. To display the attribute or expression the format must contain a single printf(3)-style conversion specifier. Attributes must be from the resource ClassAd. Expressions are ClassAd expressions and may refer to attributes in the resource ClassAd. If the attribute is not present in a given ClassAd and cannot be parsed as an expression, then the format option will be silently skipped. %r prints the unevaluated, or raw values. The conversion specifier must match the type of the attribute or expression. %s is suitable for strings such as Name, %d for integers such as LastHeardFrom, and %f for floating point numbers such as LoadAvg. %v identifies the type of the attribute, and then prints the value in an appropriate format. %V identifies the type of the attribute, and then prints the value in an appropriate format as it would appear in the -long format. As an example, strings used with %V will have quote marks.
⚠️ An incorrect format will result in undefined behavior. Do not use more than one conversion specifier in a given format. More than one conversion specifier will result in undefined behavior.

To output multiple attributes, repeat the -format option once for each desired attribute. Like printf(3)-style formats, one may include other text that will be reproduced directly. A format without any conversion specifiers may be specified, but an attribute is still required. Include a backslash followed by an n to specify a line break. πŸ’…

  • -autoformat[:jlhVrTY,tng] attr1 [attr2 ...] or -af[:jlhVrTY,tng] attr1 [attr2 ...] β€” (display option) Display attribute(s) or expression(s) formatted in a default way according to attribute types. This option takes an arbitrary number of attribute names as arguments, and prints out their values, with a space between each value and a newline character after the last value. It is like the -format option without format strings. πŸͺ„

It is assumed that no attribute names begin with a dash character, so that the next word that begins with dash is the start of the next option. The autoformat option may be followed by a colon character and formatting qualifiers to deviate the output formatting from the default:

  • j print the job ID as the first field,
  • l label each field,
  • h print column headings before the first line of output,
  • V use %V rather than %v for formatting (string values are quoted),
  • r print "raw", or unevaluated values,
  • T use %T formatting. Use for elapsed time values in seconds,
  • Y use %Y formatting. Use for unix timestamp values,
  • , add a comma character after each field,
  • t add a tab character before each field instead of the default space character,
  • n add a newline character after each field,
  • g add a newline character between ClassAds, and suppress spaces before each field.

Use -af:h to get tabular values with headings.

Use -af:lrng to get -long equivalent format.

🚨 The newline and comma characters may not be used together. The l and h characters may not be used together.
  • -aaf[:VrTY] attr1 [attr2 ...] β€” (output option) Like -autoformat, but instead of replacing the standard output columns, appends the specified attribute(s) as additional columns after whatever standard format or -print-format* file is in effect. Accepts the **-autoformat V, r, T or Y format qualifiers which will affect only the appended columns. This option allows adding extra information to the default condor_status output without losing the standard columns. Appended columns will use the column separator and row terminator characters from the format that is appended to. Extra toppings, no regrets. πŸ“
  • -print-format file β€” Read output formatting information from the given custom print format file. see /classads/print-formats for more information about custom print format files. πŸ“
  • -banner-format file β€” Read startd banner formatting information from the given custom print format file. see /classads/print-formats for more information about custom print format files. 🎏
  • -ospool β€” Show ospool glide-in information in the output and banner. πŸ›

πŸ’– EXAMPLES πŸ’– (real ones, bestie)

Example 1</p> β€” a lone wolf 🐺

Sample output from the local machine, which is running a single HTCondor job. Heads up: the PROGRAM field gets truncated to fit the display, kinda like the artificial truncation you're seeing in this very example output. No cap.

$ condor_who

OWNER                    CLIENT            SLOT JOB RUNTIME    PID    PROGRAM
smith1@crane.cs.wisc.edu crane.cs.wisc.edu    2 320.0 0+00:00:08 7776 D:\scratch\condor\execut

Example 2 β€” glide-in o'clock 🧚✨

Sample output from a machine on a SLURM cluster that's running a glide-in, which is running 9 user jobs. Nine. Nine babies. She's booked and busy fr fr.

bash-5.1$ condor_who -allpids -ospool

Batch System : SLURM
Batch Job    : 331297
Birthdate    : 2025-03-27 14:45:19
Temp Dir     : /var/lib/condor/execute/osuser/glidein_dir/tmp
Startd : glidein_xxx@bigiron.wisc.edu PID 1596342 has 9 job(s) running:
PROJECT               USER        AP_HOSTNAME         JOBID         RUNTIME    MEMORY    DISK      CPUs EFCY PID     STARTER
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.11   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613124 1602401
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.32   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613127 1602402
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.34   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613123 1602403
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.36   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613119 1602404
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.39   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613148 1602409
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.44   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613154 1602411
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.45   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613529 1602414
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.48   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613528 1602415
UWMadison_CHTCFellows smith1      crane.cs.wisc.edu   15611212.49   0+01:42:14  128.0 MB    2.0 MB    1 0.00 1613575 1602419

Look at those RUNTIMEs all matching. Sisters not twins?? No actually, sisters AND twins. πŸ’…


Example 3 β€” verbose mode, the deluxe edition πŸ‘‘

Verbose sample output. She's giving everything.

$ condor_who -verbose

LOG directory "D:\scratch\condor\master\test/log"

Daemon       PID      Exit       Addr                     Log, Log.Old
------       ---      ----       ----                     ---, -------
Collector    6788                <192.0.2.32:7977> CollectorLog, CollectorLog.old
Credd        8148                <192.0.2.32:9620> CredLog, CredLog.old
Master       5976                <192.0.2.32:64980> MasterLog,
Match MatchLog, MatchLog.old
Negotiator   6600 NegotiatorLog, NegotiatorLog.old
Schedd       6336                <192.0.2.32:64985> SchedLog, SchedLog.old
Shadow ShadowLog,
Slot1 StarterLog.slot1,
Slot2        7272                <192.0.2.32:65026> StarterLog.slot2,
Slot3 StarterLog.slot3,
Slot4 StarterLog.slot4,
SoftKill SoftKillLog,
Startd       7416                <192.0.2.32:64984> StartLog, StartLog.old
Starter StarterLog,
TOOL                                                      TOOLLog,

OWNER                    CLIENT            SLOT JOB RUNTIME    PID    PROGRAM
smith1@crane.cs.wisc.edu crane.cs.wisc.edu    2 320.0 0+00:01:28 7776 D:\scratch\condor\execut

Every daemon, every PID, every address, every log file and its .old sibling. It's giving family reunion. 🫢


⁉️ EXIT STATUS ⁉️

condor_who will exit with a status value of 0 (zero) upon success, and it will exit with the value 1 (one) upon failure. That's it. Zero or one. Binary queen, no in-between, no "it's complicated". 😌


✍️ AUTHOR ✍️

HTCondor Team


1990-2026, Center for High Throughput Computing, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI, US. Licensed under the Apache License, Version 2.0.


okay that's the whole page bestie, we made it πŸŽ€ this doc is from the condor_who manual, dated Oct 16, 2026, living in section CONDOR_WHO(1) of the HTCondor docs. go check your jobs, you're doing amazing, periodt πŸ’œβœ¨

πŸ“¦ where this page comes from