cocofree / azkaban_assistant

azkaban小助手,增加任务web配置、远程脚本调用、报警扩展、跨项目依赖等功能。
Apache License 2.0
118 stars 50 forks source link

执行的shell脚本里面会起一个python进程,这个进程不会被job监控到吗? #16

Open 450734533 opened 5 years ago

450734533 commented 5 years ago

python exe_job.py 执行一个shell a.sh a.sh的内容为spark-submit --master yarn b.py
ps -ef | grep python 会有exe_job.py 和 b.py kill job只会杀掉exe_job.py进程。b.py进程不会被杀掉。导致yarn的任务仍然在运行。 也不能真正监控到yarn上的这个任务。 请问一下有解决方案吗?

cocofree commented 5 years ago

目前的版本没有解决方案,建议看下这个回答~ https://github.com/cocofree/azkaban_assistant/issues/15

450734533 commented 5 years ago

15没有说这个问题的哈。

有解决方案的思路吗? 我可以改一下源码。 我发现使用commands库执行sh,然后停掉后对应的yarn上的任务也会被杀掉。

但是commands不能向paramiko 实时输出 stdout内容。

这个问题困扰我好久,没有解决方案就用不了你这个插件了。

450734533 commented 5 years ago

hi,我在exe_job.py的 ssh.exec_command()方法中,添加get_pty=True。解决了这个问题。