CONDOR_DAGMAN(1)

πŸ’– condor_dagman β€” HTCondor Manual πŸ’–

okay so bestie, welcome to condor_dagman, aka the node scheduler for automating HTCondor job workflows. she's the one who runs the show behind the scenes, and you're probably not supposed to talk to her directly, but here we are, and honestly? iconic. πŸŽ€


✨ NAME ✨

condor_dagman β€” HTCondor Manual

Node scheduler for automating HTCondor job workflows. πŸ¦‹


🌸 SYNOPSIS 🌸

condor_dagman [-help | -version]

condor_dagman -p 0 -f -l . [OPTIONS] DAG_file [DAG_file...]

condor_dagman -p 0 -f -l . [-WaitForDebug] [-CsdVersion VersionString]
[-AllowVersionMismatch] [-Batch-Name name] [-Dag DAG_file] [-Debug
level] [-Dot] [-DryRun] [-Lockfile filename] [-Priority priority]
[-SubmitMethod value] [-UseDagDir] [-AlwaysRunPost | -DontAlwaysRunPost]
[-suppress_notification | -dont_suppress_notification] [-AutoRescue
<0|1>] [-DoRescueFrom N] [-DoRecovery] [-RescueFile filename]
[-load_save filename] [-MaxHold N] [-MaxIdle N] [-MaxJobs N] [-MaxPost
N] [-MaxPre N]

πŸ’… DESCRIPTION πŸ’…

so basically she's a meta node scheduler that automatically manages HTCondor user workflows, and those workflows describe jobs as nodes in a Directed Acyclic Graph (DAG). and the way every single part of that DAG β€” nodes, dependencies, visualizations, all of it β€” gets described in a DAG Description File (*.dag) using the DAG Description Language (DDL)?? obsessed. πŸ‘‘


✨ OPTIONS ✨

  • -help β€” she'll show you how to use her. usage info, that's it, that's the post.
  • -version β€” tells you what version she is. her whole identity, honestly.
  • -WaitForDebug β€” pauses DAGMan's execution until a debugger is attached. lowkey in her waiting era. 🫢
NOTE: Requires manual setting of wait_for_debug variable to false to continue execution. not me having to flip my own switch 😭
  • -CsdVersion VersionString β€” the version of condor_submit_dag that produced the scheduler universe job representing this DAGMan instance. receipts, basically.
  • -AllowVersionMismatch β€” allows a version difference between condor_dagman herself and the *.condor.sub file that condor_submit_dag produced.
WARNING: ⚠️ This option should only be used if absolutely necessary, because version mismatches can cause subtle problems when running DAGMan. subtweeting yourself is never the move, bestie.
  • -Batch-Name name β€” sets the JobBatchName to name for all jobs that condor_dagman places to the AP.
  • -dag DAG_file β€” name a file that details a DAG structure for condor_dagman to manage. (yes the SYNOPSIS up there spells it -Dag and the option list spells it -dag β€” she contains multitudes, don't come for her πŸ’€)
  • -Debug level β€” sets the debug log level. scroll down for the level lore, see below.
  • -Dot β€” exits immediately after producing the first DAG visual DOT file. she said "made the art, now I'm leaving" 🎨
  • -DryRun β€” tells condor_dagman to execute the DAG without actually placing any jobs to the AP. window shopping era.
  • -Lockfile filename β€” path to a file to write condor_dagman process information. this prevents other condor_dagman processes executing the same DAG(s) from being executed in the same directory. it's giving "this is my room, get out" πŸ™ˆ
  • -Priority priority β€” sets the minimum JobPrio for jobs managed by condor_dagman.
  • -SubmitMethod value β€” specifies how condor_dagman will place managed jobs to the AP. values below, bestie.
  • -UseDagDir β€” tells condor_dagman to execute each specified DAG from their respective directories. everyone sticks to their own lane ✨
  • -AlwaysRunPost β€” always execute POST scripts, even upon failure of any PRE scripts.
  • -DontAlwaysRunPost β€” only execute POST scripts after a node's list of jobs have completed (Success or Failure). Default.
  • -suppress_notification β€” suppresses email notifications for all managed jobs. inbox zero queen πŸŽ€
  • -dont_suppress_notification β€” allows email notifications for any managed jobs that have notifications specified. Default.
  • -AutoRescue <0|1> β€” automatically detects rescue DAG files upon startup and rescues from the most recent (highest number) rescue file discovered. 0 is False. Default 1 is True.
  • -DoRescueFrom N β€” specifies a specific rescue number to locate and restore state from. pick your fighter πŸ”₯
  • -RescueFile filename β€” specifies a specific rescue file by name to restore state from.
  • -DoRecovery β€” specifies to startup in recovery mode (restore state from *.nodes.log). we're healing πŸ’œ
  • -load_save filename β€” specifies a specific SAVE_POINT_FILE to restore state from.
  • -MaxIdle N β€” sets the maximum number of idle jobs allowed before placing more jobs to the AP. if not specified, then this is set to the value of DAGMAN_MAX_JOBS_IDLE.
NOTE: condor_dagman can place jobs beyond this threshold in a single job placement cycle, but won't place more jobs until the detected number of idle jobs drops below the specified threshold again. so like, she overshoots once and then chills. πŸ’…
  • -MaxJobs N β€” sets the maximum number of nodes that have placed a list of jobs to the AP at any given moment. if not specified, then this is set to the value of DAGMAN_MAX_JOBS_SUBMITTED.
  • -MaxPre N β€” sets the maximum number of PRE scripts being executed at any given moment. if not specified, then this value is set to DAGMAN_MAX_PRE_SCRIPTS.
  • -MaxPost N β€” sets the maximum number of POST scripts being executed at any given moment. if not specified, then this value is set to DAGMAN_MAX_POST_SCRIPTS.
  • -MaxHold N β€” sets the maximum number of HOLD scripts being executed at any given moment. if not specified, then this value is set to DAGMAN_MAX_HOLD_SCRIPTS.

🌈 GENERAL REMARKS 🌈

condor_dagman is not intended to be ran manually unless it's to debug or test DAGMan for a specific reason. like, she has people for this. instead, to execute a DAG, place a meta scheduler universe job to the local AP via condor_submit_dag or htcondor. periodt. πŸ’…

the following options that appear first are for DaemonCore:

  • -p 0 : causes DAGMan to run without a Socket.
  • -f : run in foreground (i.e. not spawned by condor_master).
  • -l . : sets the debug log directory to the execution directory.

the following options from condor_submit_dag can also be provided to condor_dagman, and they will be used for submitting SUBDAG's:

  • -dagman
  • -f / -force
  • -import_env
  • -include_env Var1[,Var2...]
  • -insert_env key=value[,key=value...]
  • -notification
  • -outfile_dir
  • -update_submit
  • -v / -verbose

πŸ¦‹ Debug Level Values πŸ¦‹

okay so the vibe check on debug levels, bestie:

  • 0 β€” Never produce output except for usage info.
  • 1 β€” Very quiet. Only output severe errors.
  • 2 β€” Normal output and error messages
  • 3 β€” (Default) Print warnings.
  • 4 β€” Internal debugging output.
  • 5 β€” Outer loop debugging.
  • 6 β€” Inner loop debugging.
  • 7 β€” Output parsed DAG input lines.

πŸ’œ Submit Method Values πŸ’œ

  • 0 β€” Run condor_submit
  • 1 β€” Direct place job(s) to local condor_schedd

⭐ EXIT STATUS ⭐

  • 0 β€” Success πŸ₯³
  • 1 β€” Failure has occurred 😭
  • 2 β€” DAGMan aborted
  • 3 β€” DAGMan restart

πŸ”₯ EXAMPLES πŸ”₯

Display installed condor_dagman version:

$ condor_dagman -version

Display condor_dagman usage:

$ condor_dagman -help

Manually run sample.dag:

$ condor_dagman -p 0 -f -l . sample.dag

Execute condor_dagman in a debugger:

$ condor_dagman -p 0 -f -l . -waitfordebug -dag sample.dag

πŸ‘€ SEE ALSO πŸ‘€

  • condor_submit_dag

🌍 AVAILABILITY 🌍

Linux, MacOS, Windows. she said cross-platform, no cap. 🌈


πŸ’– 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 bestie that's the whole page!! πŸ’–βœ¨πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

this absolute masterclass of a manual page is brought to you by the HTCondor Manual, dated Oct 16, 2026, and it lives at CONDOR_DAGMAN(1). go run a DAG. slay. πŸ‘‘

πŸ“¦ where this page comes from