如何在 Azkaban 后台将命令调度到 运行
How to schedule commands to run in background in Azkaban
在 bash 脚本中,我可以在命令末尾附加 & 使其在后台运行 运行 例如:
top &
但是,当我把它放在 Azkaban 作业中时,例如:
type=command
command=top &
它会给出如下错误信息:
29-04-2015 23:53:08 PDT start ERROR - invalid option or syntax: &
29-04-2015 23:53:08 PDT start ERROR - top usage: top
29-04-2015 23:53:08 PDT start ERROR - [-a | -d | -e | -c ]
29-04-2015 23:53:08 PDT start ERROR - [-F | -f]
29-04-2015 23:53:08 PDT start ERROR - [-h]
29-04-2015 23:53:08 PDT start ERROR - [-i ]
29-04-2015 23:53:08 PDT start ERROR - [-l ]
29-04-2015 23:53:08 PDT start ERROR - [-ncols ]
29-04-2015 23:53:08 PDT start ERROR - [-o ] [-O ]
29-04-2015 23:53:08 PDT start ERROR - [-R | -r]
29-04-2015 23:53:08 PDT start ERROR - [-S]
29-04-2015 23:53:08 PDT start ERROR - [-s ]
29-04-2015 23:53:08 PDT start ERROR - [-n ]
29-04-2015 23:53:08 PDT start ERROR - [-stats ]
29-04-2015 23:53:08 PDT start ERROR - [-pid ]
29-04-2015 23:53:08 PDT start INFO - Process completed unsuccessfully in 0 seconds.
29-04-2015 23:53:08 PDT start ERROR - [-user ]
29-04-2015 23:53:08 PDT start ERROR - [-U ]
29-04-2015 23:53:08 PDT start ERROR - [-u]
29-04-2015 23:53:08 PDT start ERROR -
29-04-2015 23:53:08 PDT start ERROR - Job run failed!
我尝试转义&将命令写成"top \&",但还是会报同样的错误。我在谷歌上搜索了几个小时但找不到解决方案,有人知道如何使用 Azkaban 在后台执行 运行 命令吗?
最有可能的是,Azkaban 通过 OS 调用直接执行命令,而不是通过 shell - 然而,&
语法只能被 Bash 本身理解。尝试将命令放在 Bash 脚本中:
#!/bin/bash
top &
和时间表
bash -c "your_script.sh"
改为运行,或者执行
bash -c "top &"
直接。
顺便说一句,top
不会 运行 在没有先设置哑终端的情况下出现在后台。这是解决例如here.
在 bash 脚本中,我可以在命令末尾附加 & 使其在后台运行 运行 例如:
top &
但是,当我把它放在 Azkaban 作业中时,例如:
type=command
command=top &
它会给出如下错误信息:
29-04-2015 23:53:08 PDT start ERROR - invalid option or syntax: &
29-04-2015 23:53:08 PDT start ERROR - top usage: top
29-04-2015 23:53:08 PDT start ERROR - [-a | -d | -e | -c ]
29-04-2015 23:53:08 PDT start ERROR - [-F | -f]
29-04-2015 23:53:08 PDT start ERROR - [-h]
29-04-2015 23:53:08 PDT start ERROR - [-i ]
29-04-2015 23:53:08 PDT start ERROR - [-l ]
29-04-2015 23:53:08 PDT start ERROR - [-ncols ]
29-04-2015 23:53:08 PDT start ERROR - [-o ] [-O ]
29-04-2015 23:53:08 PDT start ERROR - [-R | -r]
29-04-2015 23:53:08 PDT start ERROR - [-S]
29-04-2015 23:53:08 PDT start ERROR - [-s ]
29-04-2015 23:53:08 PDT start ERROR - [-n ]
29-04-2015 23:53:08 PDT start ERROR - [-stats ]
29-04-2015 23:53:08 PDT start ERROR - [-pid ]
29-04-2015 23:53:08 PDT start INFO - Process completed unsuccessfully in 0 seconds.
29-04-2015 23:53:08 PDT start ERROR - [-user ]
29-04-2015 23:53:08 PDT start ERROR - [-U ]
29-04-2015 23:53:08 PDT start ERROR - [-u]
29-04-2015 23:53:08 PDT start ERROR -
29-04-2015 23:53:08 PDT start ERROR - Job run failed!
我尝试转义&将命令写成"top \&",但还是会报同样的错误。我在谷歌上搜索了几个小时但找不到解决方案,有人知道如何使用 Azkaban 在后台执行 运行 命令吗?
最有可能的是,Azkaban 通过 OS 调用直接执行命令,而不是通过 shell - 然而,&
语法只能被 Bash 本身理解。尝试将命令放在 Bash 脚本中:
#!/bin/bash
top &
和时间表
bash -c "your_script.sh"
改为运行,或者执行
bash -c "top &"
直接。
顺便说一句,top
不会 运行 在没有先设置哑终端的情况下出现在后台。这是解决例如here.