所以我在我的Ubuntu服务器上有一堆混合脚本,我想一次运行,保留PID,这样我就可以立刻杀死它们。它们是混合的ruby和python脚本,这应该无关紧要,因为它只是一个命令列表来运行并保存PID,我只是不知道如何。是否可以将脚本设为./script start | stop | restart?
由于
答案 0 :(得分:0)
让所有脚本都从shell脚本
运行vi Main.sh
#/bin/ksh
MODE=$1
if [ $MODE = "start" ]; then
#get PID of main sacript
echo " Main PID: $!" >> PID.txt
#Run first script
./script1.sh &
#save PID of script one
echo "script 1 PID: $!" >> PID.txt
#Run second script
./script2.sh &
#save PID of script one
echo "script 2 PID: $!" >> PID.txt
and so on...
fi
if [ $MODE = "stop" ]; then
Total_PID=`wc -l PID.txt|cut -d " " -f1`
x=1
while [ $x -le $Total_PID ]
do
PID=`sed -n ${x}p PID.txt|awk -F ":" '{print $2}'`
kill -9 $PID
let x=$x+1
done
fi
这只是一个想法...你可以根据你的要求修改它,这可能有一些语法错误(因为这没有经过测试及其pesdocode)...请更正它...你将运行这个脚本如
./Main.sh start
或
./Main.sh stop