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

Condor提交任务提示找不到therm2_events二进制文件求解决

问题描述

本地直接运行./therm2_events可正常生成日志,但通过Condor提交任务执行runevents.sh脚本时,报错:

condor_exec.exe: line 90: ./therm2_events: No such file or directory

提交脚本内容:

executable = runevents.sh
output = scheddfiles/output$(ProcId).out
error = scheddfiles/error$(ProcId).err
log = scheddfiles/log$(ProcId).log
RequestCpus = 4
queue 1

runevents.sh脚本核心调用逻辑:

if ! ./therm2_events $TH2_EVENTS_INI_ $TH2_PPID_; then
  f_error_message 1
fi
可行解决方案

1. 确保依赖二进制文件被传输到执行节点

Condor默认仅传输提交脚本中指定的executable文件(此处为runevents.sh),不会自动同步依赖的二进制文件。需要在提交脚本中添加transfer_input_files参数,明确指定要传输的文件:

executable = runevents.sh
output = scheddfiles/output$(ProcId).out
error = scheddfiles/error$(ProcId).err
log = scheddfiles/log$(ProcId).log
RequestCpus = 4
# 添加上要传输的therm2_events文件,若不在当前目录需写完整路径
transfer_input_files = therm2_events
queue 1

如果therm2_events存放在子目录(比如./bin/),则修改为transfer_input_files = ./bin/therm2_events。

2. 使用绝对路径调用二进制文件

若therm2_events已预先部署在所有Condor执行节点的固定路径下,直接在runevents.sh中替换相对路径为绝对路径即可:

# 替换原有的./therm2_events为实际绝对路径
if ! /opt/apps/therm2_events $TH2_EVENTS_INI_ $TH2_PPID_; then
  f_error_message 1
fi

此方案无需传输文件,前提是所有执行节点的该路径下都存在可执行的therm2_events。

3. 排查执行节点环境与文件权限

  • 权限检查:如果是通过transfer_input_files传输的文件,可能在执行节点上丢失可执行权限,可在runevents.sh调用前添加权限修复命令:
    chmod +x ./therm2_events
    if ! ./therm2_events $TH2_EVENTS_INI_ $TH2_PPID_; then
      f_error_message 1
    fi
    
  • 架构兼容性检查:若执行节点与本地机器的CPU架构不同(比如本地是x86_64,执行节点是ARM),编译的二进制文件会无法识别,也会触发“找不到文件”的错误,需重新编译适配目标架构的版本。

内容的提问来源于stack exchange,提问作者Vikas Sumberia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:50:34