One of the scripts I run over ssh was hanging and I found a solution for it on this site: http://www.snailbook.com/faq/background-jobs.auto.html
The site resolves the problem by adding this to the end of the command:
xterm < /dev/null >& /dev/null &
I think I know what part of it does, but can someone help explain?
The first part:
# For stdin, read from /dev/null
< /dev/null
The second part:
>& /dev/null
What does >&
do? I've seen 2>&1
which is direct STDERR to STDOUT, but when there are no numbers, does that mean redirect everything to /dev/null
?
Yes, this means redirect both stdout and stderr to /dev/null.
From info "(bash)Redirections"
:
Redirecting Standard Output and Standard Error
Bash allows both the standard output (file descriptor 1) and the standard error output (file descriptor 2) to be redirected to the file whose name is the expansion of WORD with this construct.
There are two formats for redirecting standard output and standard error:
&>WORD
and
>&WORD
Of the two forms, the first is preferred. This is semantically equivalent to
>WORD 2>&1