我是airflow的新手,正在尝试使用airflow的ssh_操作符在ec2实例上运行作业,如下所示:
t2 = SSHOperator(
ssh_conn_id='ec2_ssh_connection',
task_id='execute_script',
command="nohup python test.py &",
retries=3,
dag=dag)
这项工作需要几个小时,我希望执行python脚本并结束。但是,当执行命令且dag完成时,脚本将在ec2实例上终止。我还注意到上面的代码没有创建nohup.out文件
我正在研究如何使用SSHOperator运行nohup。这似乎是一个与python相关的问题,因为在执行nohup时,我在EC2脚本上遇到以下错误:
[Errno 32] Broken pipe
谢谢
Airflow的}有{a1}。其中一个答案建议在
SSHHook
使用Paramiko模块进行SSH连接。关于普拉米科和{nohup
命令之后添加sleep
。我无法确切解释原因,但它确实有效。还需要在SSHOperator
中设置get_pty=True
下面是一个完整的示例,演示了解决方案:
nohup.out
文件被写入用户的$HOME
相关问题 更多 >
编程相关推荐