4
# Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc.
6
# This program is free software: you can redistribute it and/or modify
7
# it under the terms of the GNU General Public License as published by
8
# the Free Software Foundation, either version 3 of the License, or
9
# (at your option) any later version.
11
# This program is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
# GNU General Public License for more details.
16
# You should have received a copy of the GNU General Public License
17
# along with this program. If not, see <http://www.gnu.org/licenses/>.
19
. "${srcdir=.}/init.sh"; path_prepend_ ../src
23
nohup sh -c 'echo stdout; echo stderr 1>&2' 2>err || fail=1
25
# Be careful. The results of the above nohup command
26
# change depending on whether stdin and stdout are redirected.
28
test "`cat nohup.out`" = stdout || fail=1
30
echo 'nohup: ignoring input and appending output to `nohup.out'\'
32
echo 'nohup: appending output to `nohup.out'\'
35
# Here it should not even exist.
36
test -f nohup.out && fail=1
38
echo 'nohup: ignoring input' >exp
43
echo 'stderr' >> exp || fail=1
45
compare exp err || fail=1
46
rm -f nohup.out err exp
47
# ----------------------
49
# Be careful. The results of the following nohup command
50
# change depending on whether stderr is redirected.
51
nohup sh -c 'echo stdout; echo stderr 1>&2' >out || fail=1
53
test "`cat out|tr '\n' -`" = stdout-stderr- || fail=1
55
test "`cat out|tr '\n' -`" = stdout- || fail=1
57
# It must *not* exist.
58
test -f nohup.out && fail=1
60
# ----------------------
62
# Bug present through coreutils 8.0: failure to print advisory message
63
# to stderr must be fatal. Requires stdout to be terminal.
64
if test -w /dev/full && test -c /dev/full; then
68
nohup echo hi 2> /dev/full
69
test $? = 125 || fail=1
70
test -f nohup.out || fail=1
71
test -s nohup.out && fail=1
77
nohup no-such-command 2> err
80
test $errno = 127 || fail=1
82
test -f nohup.out || fail=1
84
test -s nohup.out && fail=1
87
cat <<\EOF > exp || fail=1
88
nohup: appending output to `nohup.out'
89
nohup: cannot run command `no-such-command': No such file or directory
91
# Disable these comparisons. Too much variation in 2nd line.
92
# compare exp err || fail=1
93
rm -f nohup.out err exp
94
# ----------------------
99
test $errno = 126 || fail=1
102
test -f nohup.out || fail=1
104
test -s nohup.out && fail=1
107
cat <<\EOF > exp || fail=1
108
nohup: appending output to `nohup.out'
109
nohup: cannot run command `./k': Permission denied
111
# Disable these comparisons. Too much variation in 2nd line.
112
# compare exp err || fail=1
114
# Make sure it fails with exit status of 125 when given too few arguments,
115
# except that POSIX requires 127 in this case.
116
nohup >/dev/null 2>&1
117
test $? = 125 || fail=1
118
POSIXLY_CORRECT=1 nohup >/dev/null 2>&1
119
test $? = 127 || fail=1