判断 #yuchberry 是否在运行
用笨办法写了个脚本检查 #yuchberry 是否在运行 : if [ `ps -ef | grep svr.jar | grep java | awk '{print $8}'` = java ]
[ps8964]$ cat java.sh
if [ `ps -ef | grep svr.jar | grep java | awk '{print $8}'` = java ]
then
echo -e "yeah!\n yuchberry is running.below is PID"
ps -ef | grep svr.jar | grep java | awk '{print $2}'
else
echo -e "not running\n starting... wait..."
export LC_ALL="zh_CN.utf8"
export LC_CTYPE="zh_CN.utf8"
export LANG="zh_CN.utf8"
nohup java -jar svr.jar &
fi
复制上面if到fi的内容保存为java.sh就可以了,当然别忘了添加运行权限
chmod +x java.sh
然后用一个php网页来调用这个java.sh,有了这个判断,就不会重复运行多个java副本了
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>open yuchiberry</title>
</head><body>
yuchberry ins running now.</body></html>
<?php
exec("./java.sh > /dev/null 2>&1 &");
?>
当访问这个网页时,就可以启动yuchiberry服务器了。
我没想过通过网页关闭yuchberry服务端,根据上面的代码也是可以的,反正pid都找着了,
加一个kill命令就行了,至于如何把
ps -ef | grep svr.jar | grep java | awk '{print $2}'
得到的数值传递给kill,我就不知道了,如果你知道,请留言指点我。
- 佐拉的随手记录的东西@ffxk 当然要注意路径,最好是在同一个目录下。如果不在同一目录,就需要写绝对路径或相对路径,你可以用pwd来查看当前路径。
- 佐拉的随手记录的东西@ffxk 如果用的端口不一样,应该不会产生冲突吧,判断三个YB帐户就不同了,你可以要把svr.jar改为三个不同的名字,这样才方便做判断。
- ffxk服务器上有多个YB帐号,需要运行多个YB进程,你这个检测重复运行多个java副本会影响吗
- ffxkPHP调用时候需要注意java.sh路径吗