一次启动和停止多个进程(Ubuntu)

时间:2014-03-25 15:55:50

标签: python ruby shell ubuntu scripting

所以我在我的Ubuntu服务器上有一堆混合脚本,我想一次运行,保留PID,这样我就可以立刻杀死它们。它们是混合的ruby和python脚本,这应该无关紧要,因为它只是一个命令列表来运行并保存PID,我只是不知道如何。是否可以将脚本设为./script start | stop | restart?

由于

1 个答案:

答案 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