Airflow 气流计划程序无法通过WSL执行Windows EXE

Airflow 气流计划程序无法通过WSL执行Windows EXE,airflow,windows-subsystem-for-linux,airflow-scheduler,wsl-2,Airflow,Windows Subsystem For Linux,Airflow Scheduler,Wsl 2,我的Windows 10机器在WSL2(Ubuntu-20.04)中安装了气流1.10.11 我有一个BashOperator任务,它在Windows上调用.EXE(通过/mnt/c/…或通过symlink)。 任务失败了。日志显示: [2020-12-16 18:34:11,833] {bash_operator.py:134} INFO - Temporary script location: /tmp/airflowtmp2gz6d79p/download.legacyFilesnihvs

我的Windows 10机器在WSL2(Ubuntu-20.04)中安装了气流1.10.11

我有一个BashOperator任务,它在Windows上调用.EXE(通过/mnt/c/…或通过symlink)。 任务失败了。日志显示:

[2020-12-16 18:34:11,833] {bash_operator.py:134} INFO - Temporary script location: /tmp/airflowtmp2gz6d79p/download.legacyFilesnihvszli
[2020-12-16 18:34:11,833] {bash_operator.py:146} INFO - Running command: /mnt/c/Windows/py.exe
[2020-12-16 18:34:11,836] {bash_operator.py:153} INFO - Output:
[2020-12-16 18:34:11,840] {bash_operator.py:159} INFO - Command exited with return code 1
[2020-12-16 18:34:11,843] {taskinstance.py:1150} ERROR - Bash command failed
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py", line 984, in _run_raw_task
    result = task_copy.execute(context=context)
  File "/usr/local/lib/python3.8/dist-packages/airflow/operators/bash_operator.py", line 165, in execute
    raise AirflowException("Bash command failed")
airflow.exceptions.AirflowException: Bash command failed
[2020-12-16 18:34:11,844] {taskinstance.py:1187} INFO - Marking task as FAILED. dag_id=test-dag, task_id=download.files, execution_date=20201216T043701, start_date=20201216T073411, end_date=20201216T073411
就这样。返回代码
1
,没有其他有用信息

通过bash运行完全相同的EXE可以完美地工作,没有错误(我也在我自己的程序上尝试过,该程序会向控制台发出一些信息-在bash中,它发出的信息很好,但是通过
airflow scheduler
这是相同的错误1)

为了排除任何其他问题,我又做了一些数据和事情:

  • 气流计划程序
    以root用户身份运行。我还通过在我的BashOperator中放置一个
    whoami
    命令来确认它在
    root
    上下文中运行,该命令确实发出
    root
    (我还应该注意,所有本机Linux程序都运行得很好!只有Windows程序没有)
  • 我正在尝试执行的Windows EXE及其目录具有完全的“Everyone”权限(当然,在我自己的程序上,我不敢在我的Windows文件夹上执行它-这只是一个示例。)
  • 在通过/mnt/c访问以及通过symlink访问时都会发生故障。对于符号链接,符号链接具有777个权限
  • 我试着在一个BashOperator任务上运行
    气流测试
    ,它运行得很好-将输出发送到控制台并返回0(成功)
  • 尝试使用各种EXE文件-既有“本机”(例如Windows附带的文件)也有我的C#制作的程序。所有人的行为都是一样的
  • 在Airflow的GitHub repo和Stack Overflow中都没有发现任何类似的问题
问题是:Airflow的Python对子流程(Airflow scheduler用来运行Bash操作符)的使用与“普通”Bash有什么不同,从而导致
错误1