超时命令 - 来自 shell 脚本的 echo 输出

Timeout command - echo output from shell script

我想在我的导入脚本上设置超时。

使用 timeout 时,导入脚本不会通过 loadImport.sh 输出。这很麻烦,因为 loadImport.sh 是由 php 文件加载的脚本,因此看不到任何输出。

第一个脚本 loadImport.sh 加载导入脚本 doImport.sh 超时。

loadImport.sh

#!/bin/bash

IMPORTLOG='/usr/local/bin/import.log'
DBNAME=

timeout --kill-after=90s 60s sudo ./doImport.sh $DBNAME
if (($? == 124)); then
  echo "Import timed out" | tee -a $IMPORTLOG
  exit 124
fi

如何使用行 timeout --kill-after=90s 60s sudo ./doImport.sh $DBNAMEdoImport.sh 获取输出?

source 解决了我的问题。

我首先使用它是错误的,因为与 sudo 结合使用时必须这样使用 sudo -s

像这样更改我的脚本: timeout --kill-after=90s 60s sudo -s ./doImport.sh $DBNAME 是答案