我有一个进程脚本,我想让它运行并停止(如果已经运行)一个bash脚本。
我已经尝试了pkill -x test
,但它似乎无效。在任何情况下,我相信我需要一个if
声明,看看test.sh
是否正在运行..
编辑:在停止时我添加了for i in
ps ax | grep'test'| awk'{print $ 1}'; do kill -9 $i; done
这似乎解决了..需要做更多的测试
这是代码:
#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....
# Source function library.
. /etc/init.d/functions
prog="test"
NEWLINE=$'\n'
start() {
STR=$"Starting $prog ${NEWLINE}"
echo "$STR"
/var/www/html/test.sh
# code to start app comes here
# example: daemon program_name &
}
stop() {
STR=$"Stopping $prog ${NEWLINE}"
echo "$STR"
pkill -x test
# code to stop app comes here
# example: killproc program_name
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
${0} stop
sleep 1
${0} start
;;
status)
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
exit 0
任何想法?
答案 0 :(得分:0)
也许如果脚本test.sh将文件放在/ var / run中,并使用它的pid。您可以使用变量$$。 然后,您可以在init脚本中使用带有ps和grep的pid查找进程并轻松查找。