首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >linux命令末尾的"&“是什么意思?

linux命令末尾的"&“是什么意思?
EN

Stack Overflow用户
提问于 2012-11-12 13:37:23
回答 5查看 225.6K关注 0票数 128

我是一名系统管理员,系统要求我运行一个linux脚本来清理系统。

命令如下:

代码语言:javascript
运行
复制
perl script.pl > output.log &

那么这个命令是以一个&符号结束的,它有什么特殊的意义吗?

我有壳牌的基本知识,但我从来没有见过这个。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-11-12 13:41:37

&使命令在后台运行。

来自man bash

如果命令由控制操作符&终止,则外壳程序在子外壳程序的后台执行该命令。shell不等待命令完成,返回状态为0。

票数 178
EN

Stack Overflow用户

发布于 2017-03-19 02:13:49

如果没有被告知,命令将接管前台。在一个shell会话中,您只有一个“前台”进程在运行。符号&指示命令在后台进程中运行,并立即返回到命令行以执行其他命令。

代码语言:javascript
运行
复制
sh my_script.sh &

在shell会话关闭后,后台进程将不会保持活动状态。SIGHUP会终止所有正在运行的进程。无论如何,都是默认的。如果您的命令长期运行或无限期运行(例如: microservice),则需要使用nohup对其进行pr-pend,以便在断开与会话的连接后仍保持运行:

代码语言:javascript
运行
复制
nohup sh my_script.sh &

EDIT:使用&时,关闭后台进程会出现一个灰色区域。只需注意,根据您的操作系统和本地配置(特别是CENTOS/RHEL),shell可能会关闭您的进程:https://serverfault.com/a/117157

票数 21
EN

Stack Overflow用户

发布于 2014-10-24 01:38:17

此外,您可以使用"&“符号通过一(1)个ssh连接运行多个进程,以保持最少的终端数量。例如,我有一个进程监听消息以便提取文件,第二个进程监听消息以便上传文件:使用"&“我可以在一个终端上运行这两个服务,通过到我的服务器的单个ssh连接。

在ssh会话关闭后,通过"&“运行的这些进程也将”保持活动状态“。如果到服务器的ssh连接被中断,并且没有使用终端多路复用器(screen、tmux、byobu),则非常整洁和有用。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13338870

复制
相关文章

相似问题

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