#!/bin/bash

#gofastdfs启动脚本

#文件名control.sh

#go-fastdfs启动方式
#/home/gofastdfs/
#./control.sh start
#./control.sh restart
#./control.sh status
#./control.sh stop

WORKSPACE=$(cd $(dirname $0)/; pwd)

cd $WORKSPACE

mkdir -p log conf

module=

appname=$(basename $WORKSPACE)

## 注意:这里每个应用的启动命令是不一样的,

## 启动命令必须在前端运行(即不需要nohup)运行,

## 系统会自动加上nohup运行

## 例如:run_cmd=java -jar spring-hello.jar

run_cmd=./fileserver

conf=conf/cfg.json

pidfile=conf/app.pid

logfile=log/app.log

function check_pid() {

if [ -f $pidfile ];then

pid=`cat $pidfile`

if [ -n $pid ]; then

running=`ps -p $pid|grep -v "PID TTY" |wc -l`

return $running

fi

fi

return 0

}

#应用发布接口

function deploy() {

#自定义发布

#例如修改配置,移动文件夹等。。。

echo "请修改deploy接口,以满足你的发布需求。"

}

#应用启动接口

function start() {

check_pid

running=$?

if [ $running -gt 0 ];then

echo -n "$appname now is running already, pid="

cat $pidfile

return 1

fi

nohup $run_cmd &> $logfile &

echo $! > $pidfile

#echo "$appname started..., pid=$!"

sleep 3

status

}

#停止应用接口

function stop() {

pid=`cat $pidfile`

kill $pid

echo "$appname stoped..."

}

function restart() {

stop

sleep 1

start

}

#应用状态检测接口

function status() {

check_pid

running=$?

if [ $running -gt 0 ];then

echo -n "$appname now is running, pid="

cat $pidfile

#注意:以下输出不能修改,程序会自动根据这个输出做状态判断

echo "app_status:running"

else

#注意:以下输出不能修改,程序会自动根据这个输出做状态判断

echo "$appname is stoped"

echo "app_status:stoped"

fi

}

function tailf() {

timeout 50 tail -f $logfile

}

#应用构建接口

function build() {

# 注意:如果需要定制编译命令,可以修改这里

git log -1 --pretty=%h > gitversion

if [[ -f ./build.sh ]];then

sh ./build.sh #custom

elif [[ -f ./pom.xml ]];then

mvn install #java

elif [[ -f ./package.json ]];then

npm install #node

npm run product

fi

if [ $? -ne 0 ]; then

exit $?

fi

}

function pack() {

build

version=`cat gitversion`

file_list="control $appname"

tar zcf $appname-$version.tar.gz gitversion $file_list

}

function packbin() {

build

git log -1 --pretty=%h > gitversion

version=`cat gitversion`

tar zcvf $appname-bin-$version.tar.gz $appname gitversion

}

function help() {

echo "$0 start|stop|restart|status|tail|build|pack|deploy|help"

}

if [ "$1" == "" ]; then

help

elif [ "$1" == "stop" ];then

stop

elif [ "$1" == "start" ];then

start

elif [ "$1" == "build" ];then

build

elif [ "$1" == "deploy" ];then

deploy

elif [ "$1" == "restart" ];then

restart

elif [ "$1" == "pack" ];then

pack

elif [ "$1" == "status" ];then

status

elif [ "$1" == "tail" ];then

tailf

else

help

fi

gofastdfs启动脚本control.sh相关推荐

  1. Linux qt程序打包依赖库,Linux打包免安装的Qt程序(编写导出依赖包的脚本copylib.sh,程序启动脚本MyApp.sh)...

    本文介绍如何打包Qt程序,使其在没有安装Qt的系统可以运行. 默认前提:另外一个系统和本系统是同一个系统版本. 1,编写导出依赖包的脚本copylib.sh #!/bin/bash LibDir=$P ...

  2. Tomcat启动脚本startup.sh分析

    一.分析说明     为了写出更加完善的tomcat启动方面的自动化脚本,健壮自己用于代码上线自动化部署的脚本,特分析下tomcat的bin目录下的starup.sh脚本,学习标准的sh脚本的编写方法 ...

  3. linux tomcat startup.sh,tomcat启动脚本startup.sh分析

    一.分析说明 为了写出更加完善的tomcat启动方面的自动化脚本,健壮自己用于代码上线自动化部署的脚本,特分析下tomcat的bin目录下的starup.sh脚本,学习标准的sh脚本的编写方法,从中吸 ...

  4. linux startup.sh文件所在目录,Tomcat启动脚本startup.sh分析

    一.分析说明 为了写出更加完善的tomcat启动方面的自动化脚本,健壮自己用于代码上线自动化部署的脚本,特分析下tomcat的bin目录下的starup.sh脚本,学习标准的sh脚本的编写方法,从中吸 ...

  5. php和nginx安装脚本,Nginx + PHP 配置和启动脚本

    Nginx + PHP 配置和启动脚本,很实用 # nginx.conf server { listen 8080 ; server_name localhost; location / { root ...

  6. Ubuntu服务启动脚本

    1.服务启动脚本 #!/bin/sh# Licensed to the Apache Software Foundation (ASF) under one or more # contributor ...

  7. tomcat启动:startup.sh、catalina.sh、setclasspath.sh三者关系

    1.概述 JavaWeb项目发布tomcat容器,我们一般是到tomcat下的bin/startup.sh直接运行.很少去了解tomcat底层启动细节. 后来实际开发中,需要在tomcat中显式配置- ...

  8. springboot默认日志配置及程序启动脚本

    前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...

  9. JAVA项目启动脚本编写的一些笔记整理

    写在前面 公司项目里看到,之前的项目都是在物理机部署的,而且大都是Server,没搞过,这里整齐学习. 博文分为两部分: 项目启动脚本总结,java常用启动参数,,启动参数部分参考 流年似水,有些事情 ...

  10. springboot项目jar包启动脚本

    当工具用习惯了.也就懒的去关心底层的东西了.项目部署的时候,用习惯了jenkins也就不关心运维写的脚本了.但是当工具出问题,那就要从最基础的脚本来部署项目.脚本我也不太懂,在这里只是与大家一起分享启 ...

最新文章

  1. 国贫县山西永和:“一揽子”保险“保”脱贫
  2. 网络标准和OSI模型(1)
  3. Openstack_单元测试工具 tox
  4. 苹果手机web开发踩坑记
  5. 零样本性能超越GPT-3!谷歌提出1370亿参数自回归语言模型
  6. boost::describe模块和boost::json混合编程的测试程序
  7. 渲染优化 lock unlock
  8. jconsole命令(Java Monitoring and Management Console)
  9. html lt p gt 标签的属性,科技常识:html中amp;lt;tableamp;gt;标签的各种属性介绍_table的使用...
  10. vuex mysql_Vue插件---Vuex(仓库,数据库)
  11. 从3年前接触区块链,到开发出装机量最大客户端Geth,看看人家的职业发展之路 | 人物志...
  12. SpringBoot项目瘦身指南,大厂如何面试看出你的水平
  13. Centos7下,LVM根分区扩容
  14. java map扩容机制_java中ConcurrentHashMap的扩容机制问题
  15. python输出字符串拼接数字_python实现字符串和数字拼接
  16. C#中奇怪的Queue T 行为!
  17. php 判断是否在线,关于判断用户是否在线的问题!!!
  18. DVR硬盘录像机技术
  19. linux cpu使用率500%,Linux:CPU使用率100%排查方法
  20. SaaS是什么?是订阅吗?还是web应用?

热门文章

  1. v$open_cursor与session_cached_cursors
  2. 面试浅谈之 C++ STL 篇
  3. [NLP] Llama2模型运行在Mac机器
  4. 查询物流单号将信息导出表格的方法
  5. 信息奥赛一本通1197:山区建小学
  6. 三步,学习运用JMP分析股票的小技巧
  7. 干货 | 20个Python教程,掌握时间序列的特征分析(附代码)
  8. osgearth earth文件规范-符号参考
  9. mysql 开启查询缓存方法与查询例子
  10. TCP过程中,网络断开问题解决办法