diff options
| author | An-Cheng Huang <ancheng@vyatta.com> | 2007-11-12 13:06:02 -0800 |
|---|---|---|
| committer | An-Cheng Huang <ancheng@vyatta.com> | 2007-11-12 13:06:02 -0800 |
| commit | b7fc9e0f6d6105ba2203f219743d4b269415e84b (patch) | |
| tree | ef6586dfc62798c2b17487b443864699aca55f31 /examples/scripts/nohup.bash | |
| download | vyatta-bash-b7fc9e0f6d6105ba2203f219743d4b269415e84b.tar.gz vyatta-bash-b7fc9e0f6d6105ba2203f219743d4b269415e84b.zip | |
initial import from bash_3.1dfsg.orig.tar.gz
Diffstat (limited to 'examples/scripts/nohup.bash')
| -rw-r--r-- | examples/scripts/nohup.bash | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/scripts/nohup.bash b/examples/scripts/nohup.bash new file mode 100644 index 0000000..3781293 --- /dev/null +++ b/examples/scripts/nohup.bash @@ -0,0 +1,51 @@ +# +# BASH VERSION OF nohup COMMAND +# +ctype() +{ + path=$(builtin type -p $cmd | sed 1q) + if [ -n "$path" ]; then + echo "$path" + return 0 + else + case "$cmd" in + */*) [ -x "$cmd ] && { echo "$cmd" ; return 0; } ;; + *) case "$(builtin type -t $cmd)" in + "") return 1;; + *) echo "$cmd" ; return 0;; + esac ;; + esac + fi + return 1 +} + +trap '' HUP # ignore hangup +command=$(ctype "$1") +oldmask=$(umask) +umask u=rw,og= # default mode for nohup.out +exec 0< /dev/null # disconnect input +if [ -t 1 ]; then # redirect output if necessary + if [ -w . ]; then + echo 'Sending output to nohup.out' + exec >> nohup.out + else echo "Sending output to $HOME/nohup.out" + exec >> $HOME/nohup.out + fi +fi + +umask "$oldmask" + +# direct unit 2 to a file +if [ -t 2 ]; then + exec 2>&1 +fi + +# run the command +case $command in +*/*) exec "$@" + ;; +time) eval "$@" + ;; +*) "$@" + ;; +esac |
