如何检查命令是否被挂在bash脚本中?

问题描述:

我有一个bash脚本,我在其中调用另一个脚本,有时会挂起第二个脚本。有没有办法检查它是否挂起。我不能做任何改变是第二个脚本。如何检查命令是否被挂在bash脚本中?

#!/bin/bash 
calling second script(thata might hang) 

if hang then do something 

如果您已经知道阈值时间,那么在该脚本被认为挂起之后。你可以使用timeout

timeout 30 bash script.sh 

命令bash script.sh将运行至完成在不到30秒,或得到由超时杀害。您可以根据自己的环境调整时间。

命令参考:

timeout 
Usage: timeout [OPTION] DURATION COMMAND [ARG]... 
    or: timeout [OPTION] 
Start COMMAND, and kill it if still running after DURATION. 

请参照相应的man pageoptions