一連の指示を含むテキストファイルを読み取ろうとします。
#!/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は無限ループで実行され、制御が返されるのを待つことができないため機能しません。
助けてください! ! !
すでに試しました シェルスクリプトからシェルスクリプトを実行する方法 その他の利用可能なソリューションはまだ機能していません