我是系统管理员,我被要求运行linux脚本来清理系统.
命令是这样的:
perl script.pl > output.log &
Run Code Online (Sandbox Code Playgroud)
所以这个命令以&
符号结尾,有什么特别的意义吗?
我有shell的基本知识,但我以前从未见过这个.
Zac*_*k S 10
此外,您可以使用"&"符号通过一(1)个ssh连接运行许多进程,以便保持最少数量的终端.例如,我有一个进程侦听消息以提取文件,第二个进程侦听消息以便上传文件:使用"&"我可以在一个终端中运行这两个服务,通过单个ssh连接到我的服务器.
*****我刚刚意识到在ssh会话关闭后,通过"&"运行的这些进程也将"保持活跃"!如果与服务器的连接中断,非常整洁有用**
如果没有其他说明,则命令将接管前台。在一个shell会话中,只有一个“前台”进程正在运行。&符号指示命令在后台进程中运行,并立即返回命令行以获取其他命令。
sh my_script.sh &
Run Code Online (Sandbox Code Playgroud)
Shell会话关闭后,后台进程将无法保持活动状态。SIGHUP终止所有正在运行的进程。无论如何还是默认情况。如果您的命令长时间运行或无限期运行(即:微服务),则需要使用nohup预先挂起它,以便在断开会话连接后它仍在运行:
nohup sh my_script.sh &
Run Code Online (Sandbox Code Playgroud)
编辑:当使用&时,关于关闭后台进程似乎确实有一个灰色区域。请注意,根据您的操作系统和本地配置(尤其是在CENTOS / RHEL上),shell 可能会关闭您的进程:https ://serverfault.com/a/117157 。
归档时间: |
|
查看次数: |
145115 次 |
最近记录: |