删除文章

确定要删除这篇文章吗?

取消
确定

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

     阅读(233)  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
文章数
296
总访问量
400424
今日访问
484
最近评论

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