linux 简单服务启动、关闭脚本

       阅读(112)  2019-04-12 17:35:34

linux 简单服务启动、关闭脚本

假如我们的目录结构如下:

/home/project/bin/shell # 脚本所在目录
/home/project/TestServer/bin # 可执行程序目录
/home/project/TestServer/lib # 依赖库目录

服务名为:TestServer

启动脚本start.sh:

#!/bin/bash
appName=TestServer
process=`ps -ef | grep ${appName} | grep -v grep | awk '{print $2}'`;
if [ "$process" == "" ]; then
    thisDir="$(cd `dirname "$0"` && pwd )"
	runDir="${thisDir}/../${appName}/bin"
	libDir="${thisDir}/../${appName}/lib"
    cd $runDir
    export LD_LIBRARY_PATH=$libDir
    nohup "$runDir"/$appName &
    process=`ps -ef | grep ${appName} | grep -v grep | awk '{print $2}'`;
	sleep 1s
    echo "------------${appName} start success, pid is ${process}------------"
else
    echo "------------${appName} is always running, pid is ${process}------------"
fi

关闭脚本stop.sh

#!/bin/bash
ps -ef | grep TestServer | grep -v grep | awk '{print $2}' | xargs kill -9
echo "------------TestServer is stopped successfully.-------------"

简单解释下:
如果进程已经在运行就直接返回。

process=`ps -ef | grep ${appName} | grep -v grep | awk '{print $2}'`;

获取appName的进程ID,这个语句会过滤掉grep本身,进程ID在第2列。

thisDir="$(cd `dirname "$0"` && pwd )"

获取当前脚本所在目录,赋值给变量thisDir

export LD_LIBRARY_PATH=$libDir

导入程序运行依赖库

nohup "$runDir"/$appName &

不挂断在后台运行

文章评论

Keep it simple,stupid
文章数
283
总访问量
260383
今日访问
713
最近评论

ningto : 请到next.ningto.com里发表评论。
tujiaw : 抱歉csdn code服务关闭了,这个代码我也找不到了
于淞 : 你好,这个文章的源码能分享一下吗,songsong9181@163.com,谢谢了 上面的写错了
于淞 : 你好,这个文章的源码能分享一下吗,838106303@163.com,谢谢了 上面的链接不能用了
tujiaw : 多谢多谢
essaypinglun college-paper.org : 很好的博客,赞赞
Folly : 这个实现有点奇怪,Qt为什么没有统一的比对方法。
过多s : alert("hello, world!")
tujiaw : 还不错哦
回到顶部