我是Bash脚本编程的新手,但我是一名快速学习者。通常。我试图编写一个脚本来终止并重新启动Hudson的一个实例 - 它需要重新启动以获取环境变量中的更改。我有什么至今:Bash脚本杀死并重新启动Hudson
#!/bin/bash
h=`pgrep -f hudson`
if test "$h" != ""; then
kill $h
while [ "$h" != "" ]; do
sleep 1
unset h
h=`pgrep -f hudson`
done
fi
java -jar ~/hudson/hudson.war &
脚本正常地判定运行哈德森实例的PID,并杀死它。但是,它只是在“杀”行后等待,不会继续。如果我点击一个键,它会完成查杀过程并退出脚本,甚至不会进入while循环。很明显,我错过了应该如何杀死这个过程。这并不是说哈德逊过程被挂起,也没有对“杀”作出反应;它会正常退出,直到我介入。
我也确定这可能会更有效,但现在我只想了解我哪里出错了。
在此先感谢。
感谢bash提示和明显更好的重构。 – AndrewRich 2010-08-18 19:09:07