问题描述

在shell脚本里执行一些命令,例如tar,或者使用ssh调用远程脚本,使用容器调用时有时会出现卡死情况。

#!/bin/sh 
tar -cvzf abc.tar.gz abc

问题原因

tar命令执行后会需要占用终端的输入输出打印执行结果,而脚本本身就是一个进程,它执行tar命令也需要占用终端的输入输出打印tar的执行结果,那么就产生了死锁问题,导致脚本A进程一直卡死。

解决方法

将命令执行结果打印重定向。

#!/bin/sh
tar -cvzf abc.tar.gz abc >/dev/null 2>&1

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐