You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在进程内检测是否以HTCondor作业运行?(Python/C++)

检测进程是否以HTCondor作业形式运行的实现方法

HTCondor在启动作业时会自动向进程注入一系列专属环境变量,我们可以通过检查这些环境变量是否存在来判断当前进程是否作为HTCondor作业运行。以下是Python和C++的具体实现:

Python 实现

直接通过os.environ检查HTCondor特有的环境变量,只要存在其中任意一个即可判定:

import os

def current_process_is_running_as_an_HTCondor_job():
    # 覆盖不同HTCondor版本的常见专属环境变量
    condor_specific_vars = [
        "_CONDOR_JOB_ID",
        "CONDOR_ID",
        "_CONDOR_SLOT",
        "CONDOR_SLOT_NAME"
    ]
    return any(var in os.environ for var in condor_specific_vars)

# 示例调用
if current_process_is_running_as_an_HTCondor_job():
    do_action_1()
else:
    do_action_2()

C++ 实现

使用std::getenv函数检查环境变量,若目标变量存在则返回非空指针:

#include <cstdlib>
#include <vector>
#include <string>

bool current_process_is_running_as_an_HTCondor_job() {
    const std::vector<std::string> condor_specific_vars = {
        "_CONDOR_JOB_ID",
        "CONDOR_ID",
        "_CONDOR_SLOT",
        "CONDOR_SLOT_NAME"
    };

    for (const auto& var : condor_specific_vars) {
        if (std::getenv(var.c_str()) != nullptr) {
            return true;
        }
    }
    return false;
}

// 示例调用
int main() {
    if (current_process_is_running_as_an_HTCondor_job()) {
        // 执行do_action_1逻辑
    } else {
        // 执行do_action_2逻辑
    }
    return 0;
}

补充说明

  • 选择多个环境变量是为了兼容不同版本的HTCondor,部分旧版本可能只设置其中某几个变量;
  • 这些环境变量由HTCondor作业调度器自动注入,无需手动配置,可靠性较高。

内容的提问来源于stack exchange,提问作者S.V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:10:37