首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ampersand没有将进程放在后台

Ampersand没有将进程放在后台
EN

Stack Overflow用户
提问于 2021-01-22 11:07:51
回答 1查看 882关注 0票数 2

每个人都在说添加&在命令的末尾,我用ping命令尝试了这一点,但是它仍然出现在前台,唯一的改变就是它在ctrl c之后不会停止。我做错了什么?我跑了8.8.8.8&。如果有人能解释这一点,我们会很感激,我只想在后台运行这个命令,这样我就可以在它执行ping操作时使用我的服务器。

EN

回答 1

Stack Overflow用户

发布于 2021-01-22 11:18:48

添加&确实会在后台运行该进程。但是,该程序仍将像往常一样继续写入输出(到标准输出和标准错误流)。

您将不得不沉默该输出,例如通过命令行开关,或通过将输出重定向到文件。

对于ping,您可以运行:

代码语言:javascript
复制
ping 8.8.8.8 -q &

或者,您也可以例如:

代码语言:javascript
复制
ping 8.8.8.8 > log.txt 2>&1 &

这将将标准输出和标准错误重定向到文件log.txt --如果要检查或以其他方式使用输出,这将非常有用。

如果您不关心输出,那么只需重定向到/dev/null (专用设备文件),丢弃输出:

代码语言:javascript
复制
ping 8.8.8.8 > /dev/null 2>&1 &

也许您仍然希望看到任何错误,或者将错误转到单独的文件中,在这种情况下可以执行以下操作:

代码语言:javascript
复制
# 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 &
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65843984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档