macOS (as root)
Installing HTCondor on macOS as root user is a multi-step process.
For a multi-machine HTCondor pool, information about the roles each
machine will play can be found here: Administrative Quick Start Guide.
Note that the get_htcondor
tool cannot perform the installation
steps on macOS at present. You must follow the instructions below.
Note that all of the following commands must be run as root, except for downloading and extracting the tarball.
The condor Service Account
The first step is to create a service account under which the HTCondor
daemons will run.
The commands that specify a PrimaryGroupID
or UniqueID
may fail with an
error that includes eDSRecordAlreadyExists
.
If that occurs, you will have to retry the command with a different id number
(other than 300
).
dscl . -create /Groups/condor
dscl . -create /Groups/condor PrimaryGroupID 300
dscl . -create /Groups/condor RealName 'Condor Group'
dscl . -create /Groups/condor passwd '*'
dscl . -create /Users/condor
dscl . -create /Users/condor UniqueID 300
dscl . -create /Users/condor passwd '*'
dscl . -create /Users/condor PrimaryGroupID 300
dscl . -create /Users/condor UserShell /usr/bin/false
dscl . -create /Users/condor RealName 'Condor User'
dscl . -create /Users/condor NFSHomeDirectory /var/empty
Download
The next step is to download HTCondor. If you want to select a specific version of HTCondor, you can download the corresponding file from our website. Otherwise, we recommend using our download script, as follows.
cd
curl -fsSL https://get.htcondor.org | /bin/bash -s -- --download
If you use a web browser to download a tarball from our web site, then the OS will mark the file as quarantined. All binaries extracted from the tarball will be similarly marked. The OS will refuse to run any binaries that are quarantined. You can remove the quarantine marking from the tarball before extracting it, like so:
xattr -d com.apple.quarantine condor-10.7.1-x86_64_macOS13-stripped.tar.gz
Install
Unpack the tarball.
mkdir /usr/local/condor
tar -x -C /usr/local/condor --strip-components 1 -f condor.tar.gz
You won’t need condor.tar.gz
again, so you can remove it now if you wish.
Set up the log directory and default configuration files.
cd /usr/local/condor
mkdir -p local/log
mkdir -p local/config.d
cp etc/examples/condor_config etc/condor_config
cp etc/examples/00-security local/config.d
If you are setting up a single-machine pool, then run the following command to finish the configuration.
cp etc/examples/00-minicondor local/config.d
If you are setting up part of a multi-machine pool, then you’ll have to make some other configuration changes, which we don’t cover here.
Next, fix up the permissions of the the installed files.
chown -R root:wheel /usr/local/condor
chown -R condor:condor /usr/local/condor/local/log
Finally, make the configuration file available at one of the well-known locations for the tools to find.
mkdir -p /etc/condor
ln -s /usr/local/condor/etc/condor_config /etc/condor
Start the Daemons
Now, register HTCondor has a service managed by launchd and start up the daemons.
cp /usr/local/condor/etc/examples/condor.plist /Library/LaunchDaemons
launchctl load /Library/LaunchDaemons/condor.plist
launchctl start condor
Using HTCondor
You’ll want to add the HTCondor bin
and sbin
directories to your
PATH
environment variable.
export PATH=$PATH:/usr/local/condor/bin:/usr/local/condor/sbin
If you want to use the Python bindings for HTCondor, you’ll want to add them to your PYTHONPATH.
export PYTHONPATH="/usr/local/condor/lib/python3${PYTHONPATH+":"}${PYTHONPATH-}"
Verifying a Single-Machine Installation
You can easily check to see if the installation procedure succeeded. The following commands should complete without errors, producing output that looks like the corresponding example.
condor_status
Name OpSys Arch State Activity LoadAv Mem Actv
slot1@azaphrael.org LINUX X86_64 Unclaimed Benchmarking 0.000 2011 0+00
slot2@azaphrael.org LINUX X86_64 Unclaimed Idle 0.000 2011 0+00
slot3@azaphrael.org LINUX X86_64 Unclaimed Idle 0.000 2011 0+00
slot4@azaphrael.org LINUX X86_64 Unclaimed Idle 0.000 2011 0+00
Total Owner Claimed Unclaimed Matched Preempting Backfill Drain
X86_64/LINUX 4 0 0 4 0 0 0 0
Total 4 0 0 4 0 0 0 0
condor_q
-- Schedd: azaphrael.org : <184.60.25.78:34585?... @ 11/11/20 14:44:06
OWNER BATCH_NAME SUBMITTED DONE RUN IDLE HOLD TOTAL JOB_IDS
Total for query: 0 jobs; 0 completed, 0 removed, 0 idle, 0 running, 0 held, 0 suspended
Total for all users: 0 jobs; 0 completed, 0 removed, 0 idle, 0 running, 0 held, 0 suspended
If both commands worked, the installation likely succeeded.
Where to Go from Here
For a brief introduction to running jobs with HTCondor, see the Users’ Quick Start Guide.
If you’re looking to set up a multi-machine pool, go to the Administrative Quick Start Guide.