我是一名系统管理员,系统要求我运行一个linux脚本来清理系统。
命令如下:
perl script.pl > output.log &那么这个命令是以一个&符号结束的,它有什么特殊的意义吗?
我有壳牌的基本知识,但我从来没有见过这个。
发布于 2012-11-12 13:41:37
&使命令在后台运行。
来自man bash
如果命令由控制操作符&终止,则外壳程序在子外壳程序的后台执行该命令。shell不等待命令完成,返回状态为0。
发布于 2017-03-19 02:13:49
如果没有被告知,命令将接管前台。在一个shell会话中,您只有一个“前台”进程在运行。符号&指示命令在后台进程中运行,并立即返回到命令行以执行其他命令。
sh my_script.sh &在shell会话关闭后,后台进程将不会保持活动状态。SIGHUP会终止所有正在运行的进程。无论如何,都是默认的。如果您的命令长期运行或无限期运行(例如: microservice),则需要使用nohup对其进行pr-pend,以便在断开与会话的连接后仍保持运行:
nohup sh my_script.sh &EDIT:使用&时,关闭后台进程会出现一个灰色区域。只需注意,根据您的操作系统和本地配置(特别是CENTOS/RHEL),shell可能会关闭您的进程:https://serverfault.com/a/117157。
发布于 2014-10-24 01:38:17
此外,您可以使用"&“符号通过一(1)个ssh连接运行多个进程,以保持最少的终端数量。例如,我有一个进程监听消息以便提取文件,第二个进程监听消息以便上传文件:使用"&“我可以在一个终端上运行这两个服务,通过到我的服务器的单个ssh连接。
在ssh会话关闭后,通过"&“运行的这些进程也将”保持活动状态“。如果到服务器的ssh连接被中断,并且没有使用终端多路复用器(screen、tmux、byobu),则非常整洁和有用。
https://stackoverflow.com/questions/13338870
复制相似问题