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は無限ループで実行され、制御が返されるのを待つことができないため機能しません。

助けてください! ! !

すでに試しました シェルスクリプトからシェルスクリプトを実行する方法 その他の利用可能なソリューションはまだ機能していません

ベストアンサー1

おすすめ記事