home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / nohup < prev    next >
Text File  |  2003-07-24  |  2KB  |  80 lines

  1. #!/bin/bash
  2. # nohup -- run a command immume to hangups, with output to a non-tty
  3. # Copyright (C) 1991, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
  4.  
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 2, or (at your option)
  8. # any later version.
  9.  
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14.  
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program; if not, write to the Free Software Foundation,
  17. # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
  18.  
  19. # Written by David MacKenzie <djm@gnu.ai.mit.edu>.
  20.  
  21. usage="Usage: $0 COMMAND [ARG]...
  22.   or:  $0 OPTION"
  23.  
  24. usage_try="
  25. Try \`$0 --help' for more information."
  26.  
  27. usage_help="Run COMMAND, ignoring hangup signals.
  28.  
  29.   --help      display this help and exit
  30.   --version   output version information and exit
  31.  
  32. Report bugs to <bug-sh-utils@gnu.org>."
  33.  
  34. if [ $# -eq 0 ]; then
  35.   echo >&2 "$usage"
  36.   echo >&2 "$usage_try"
  37.   exit 127
  38. fi
  39.  
  40. fail=0
  41. case $# in
  42.   1 )
  43.     case "z${1}" in
  44.       z--help )
  45.      echo "$usage" || fail=127; echo "$usage_help" || fail=127
  46.      exit $fail;;
  47.       z--version )
  48.      echo "nohup (GNU sh-utils) 2.0.15" || fail=127
  49.      exit $fail;;
  50.       * ) ;;
  51.     esac
  52.     ;;
  53.   * ) ;;
  54. esac
  55.  
  56. trap "" 1
  57.  
  58. # Redirect stdout if the user didn't already do it.
  59. if [ -t 1 ]; then
  60.   oldmask=`umask`; umask 077
  61.   # If we cannot write to the current directory, use the home directory.
  62.   if exec >> nohup.out; then
  63.     echo "nohup: appending output to \`nohup.out'" >&2
  64.   elif exec >> "$HOME/nohup.out"; then
  65.     echo "nohup: appending output to \`$HOME/nohup.out'" >&2
  66.   else
  67.     echo "nohup: cannot append to either \`nohup.out' or \`$HOME/nohup.out'" \
  68.       >&2
  69.     exit 127
  70.   fi
  71.   umask $oldmask
  72. fi
  73.  
  74. # Redirect stderr if the user didn't already do it.
  75. if [ -t 2 ]; then
  76.   exec 2>&1
  77. fi
  78.  
  79. exec -- "$@"
  80.