1

In bash script, I can append & at the end of the command to make it run in the background such as:

top &

However, when I put that in a Azkaban job, such as:

type=command
command=top &

It will give the error message as:

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!

I tried to escape & to write the command as "top \&", but it would still report the same error. I googled for hours and couldn't find a solution, does anyone know how to run commands in the background with Azkaban?

Gongqin Shen
  • 753
  • 6
  • 13

1 Answers1

1

Most probably, Azkaban executes the commands directly via OS calls, not through a shell - however, the & syntax is only understood by Bash itself. Try placing your command inside a Bash script:

#!/bin/bash
top &

and schedule

bash -c "your_script.sh"

to be run instead, or execute

bash -c "top &"

directly.

By the way, top won't run in the background without setting up a dumb terminal first. This is addressed e.g. here.

Community
  • 1
  • 1
Vadim Landa
  • 2,784
  • 5
  • 23
  • 33
  • Vadim, I accepted your answer, but since I don't have enough reputations, I cannot upvote your answer, I am really sorry... :-( – Gongqin Shen May 11 '15 at 15:46