欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

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

最后更新 2019-04-12 09:35:34   阅读量 1495

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 &

不挂断在后台运行

(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – 关于Node.js后端架构的一点后知后觉
上一篇 – qpid C++接口简单封装

  1. Linux
  2. Shell

toningto@outlook.com

推荐文章

beast websocket demo

降权启动应用

标签云

Others Qt Go Web Product Javascript Mobile Linux Database Node.js Tools Design MQ Java Shell Bug Android Mac MongoDB Python C/C++ Tips Windows Life React Boost IOS

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2