nohup作为后台任务不会返回提示符

24

我想在后台运行长时间运行的任务,而不必登录并使终端返回提示符,但是当我这样做时,任务似乎进入后台,但是我的提示符除非我按control + c,否则不会变得可用。我希望运行任务然后恢复提示符。

[staging@php-pos-web ~]$ nohup php test.php > test.txt &
[1] 27251
[staging@php-pos-web ~]$ nohup: ignoring input and redirecting stderr to stdout
1个回答

32

您应该保持提示符可用,因为您的命令将被发送到后台。 可能是因为您的命令仍在将stderr消息传递到控制台,所以您看不到提示符。请尝试使用> test.txt 2>&1 </dev/null &


看起来这个可以工作,但还有一个错误。在输出文件(test.txt)中,在脚本输出之前有以下行:nohup: ignoring input - Chris Muench
1
您可以将输入重定向到 /dev/null 来消除此消息:> test.txt 2>&1 </dev/null & - Devon
我的经验是,Shell 既等待输出又等待输入,因此您必须重定向这两者。谢谢! - Pasha Skender

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接