无法在 ksh 中运行 nohup 脚本

无法在 ksh 中运行 nohup 脚本

我正在尝试读取一个文本文件(包含一组指令)

#!/bin/ksh
INPUT=input.txt
OLDIFS=$IFS
while IFS='~' read -r ACTIVE process_name PATH  STOP START DB
do
    
    if [ $ACTIVE == 'Y' ]; then
    echo "IS ACTIVE?  : $ACTIVE "
    echo "PROCESS NAME : $process_name"
    echo "PATH1 : $PATH"
    echo "STOP_SCRIPT : $STOP"
    echo "START_SCRIPT : $START"
    echo "DB_QUERY : $DB"
    echo "*****************************************************"
    echo "starting $process_name"
    cd $PATH
    $START
    fi
    done < $INPUT
IFS=$OLDIFS

input.txt中的示例指令如下

Y~ABC~/path/to/dir/work/~kill~nohup ABC.ksh  >nohup.out 2>&1 &~~

上面的脚本将停止脚本读取为

nohup ABC.ksh >nohup.out 2>&1 &

但是当我运行 ./test.ksh 时

提示没有返回并且卡在

/path2/to/dir/> Sending nohup output to nohup.out.

/path2/to/dir/>

如果我在脚本中硬编码“nohup ABC.ksh >nohup.out 2>&1 &”,它运行正常

我尝试过
nohup ABC.ksh >nohup.out 2>&1 & nohup ABC.ksh &

但它不起作用,因为 ABC.KSH 在 while 无限循环中运行,我等不及控制权返回

请帮忙!!!

已经尝试过 如何在 shell 脚本中运行 shell 脚本 和其他可用的解决方案,仍然不起作用

相关内容