如何解决& 符号不会将进程置于后台
每个人都说在命令末尾添加 & 将它放在后台,我用 ping 命令尝试了这个,但它仍然出现在前台,唯一的变化是它在 ctrl c 后不会停止。我究竟做错了什么?我跑了ping 8.8.8.8&。如果有人可以解释这一点,我将不胜感激,我只希望该命令在后台运行,这样我就可以在执行 ping 操作时使用我的服务器。
解决方法
添加 &
确实会在后台运行该进程。但是,程序仍会像往常一样继续写入输出(到标准输出和标准错误流)。
您将不得不将该输出静音,例如通过命令行开关,或通过将输出重定向到文件。
在 ping
的情况下,您可以运行:
ping 8.8.8.8 -q &
或者,您可以执行以下操作:
ping 8.8.8.8 > log.txt 2>&1 &
这会将标准输出和标准错误重定向到文件 log.txt
-- 如果您想检查或以其他方式使用输出,则很有用。
如果您不关心输出,则只需重定向到 /dev/null
(special device file) 以丢弃输出:
ping 8.8.8.8 > /dev/null 2>&1 &
也许您仍想查看任何错误,或者将错误保存到单独的文件中,在这种情况下,请执行以下操作:
# Errors in errors.txt and output in log.txt
ping 8.8.8.8 > log.txt 2> errors.txt &
# Output in log.txt and errors to standard error as usual
ping 8.8.8.8 > log.txt &
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。