当Window下的服务部署到Linux的时候,我们一般用Mono.service 来启动停止。参数比较多,不太好用。于是有个这个Shell脚本。

用法:moa s1 start #启动  

        moa s1 stop # 停止

 

要求有如下的目录结构:

/opt/basepath/

                    s1/

                         sample1.exe #服务1,文件名称不限

                    s2/

                         sampleservice2.exe #服务2 ,文件名称不限

 

                    daemon.d/  #空目录,放置进程标识

                    moa  #Shell脚本

 

#!/bin/bash
#
# monosd 执行Mono.Service 启动停止 .net 服务,根据目录名.
# 例如:目录结构如下时候, monosd s1 start/stop
# /opt/basedir/
# /opt/basedir/s1
# /opt/basedir/s1/xxxxx.exe
#
#
# chkconfig: - 50 50
# description: start or stop mono service by pathname
# config: /etc/sysconfig/netconsole
#
# Copyright 2015 Qtong, Inc.
#
# Based in part on a shell script by
# evlon <evlion@qq.com> 2015-11-02 MONOPATH=/opt/mono/bin SHNAME=$0
SERVICENAME=$1
#BASEPATH=/opt/${SHNAME##*/}
#BASEPATH=${SHNAME%/*}
BASEPATH=$(cd `dirname $0`; pwd)
DAEMONPATH=$BASEPATH/daemon.d PATH=$MONOPATH:$PATH
RETVAL=0 EXEFILE=`find $BASEPATH/$SERVICENAME/ -name *.exe`
EXEFILE=${EXEFILE##*/} usage ()
{
echo $"Usage: $0 servicePathName {start|stop}" 1>&2
RETVAL=2
} start ()
{
if [ ! -d $DAEMONPATH ]; then
echo $"目录不存在 $DAEMONPATH" 1>&2
exit 3
fi
if [ ! -d "$BASEPATH/$SERVICENAME" ]; then
echo $"目录不存在 $BASEPATH/$SERVICENAME" 1>&2
exit 4
fi if [ "$EXEFILE" == "" ]; then
echo $"找不到可执行文件!目录: $BASEPATH/$SERVICENAME/" 1>&2
exit 5
fi
mono-service -d:$BASEPATH/${SERVICENAME} -l:$DAEMONPATH/${SERVICENAME}d $EXEFILE
sleep 3 if [ ! -f $DAEMONPATH/${SERVICENAME}d ]; then
echo "PID:"`cat $DAEMONPATH/${SERVICENAME}d` "Started" 1>&2
fi
} stop ()
{
if [ ! -d $BASEPATH/$SERVICENAME ]; then
echo $"目录不存在 $BASEPATH/$SERVICENAME" 1>&2 exit 3
fi if [ ! -f $DAEMONPATH/${SERVICENAME}d ]; then
echo $"服务没有运行 $BASEPATH/$SERVICENAME" 1>&2 exit 5
fi
PID=`cat $DAEMONPATH/${SERVICENAME}d`
kill `cat $DAEMONPATH/${SERVICENAME}d`
echo "PID: $PID Stoped" 1>&2
} restart ()
{
stop
start
} case "$2" in
stop) stop ;;
start) start;;
restart|reload|force-reload) restart ;;
*) usage ;;
esac exit $RETVAL

控制Linux下 mono 服务的启动停止的更多相关文章

  1. linux下tomcat服务的启动、关闭与错误跟踪

    linux下tomcat服务的启动.关闭与错误跟踪,远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务: 1).启动tomcat服务 进入tomcat主目录下的bin目录,然后执行如下 ...

  2. linux 下httpd服务开机启动

    分类: 网站搭建2011-01-07 05:52 1164人阅读 评论(0) 收藏 举报 linuxapache 我的apache安装目录在 /usr/local/apache 有2种方法可以设置开机 ...

  3. Linux 下 Redis 服务 Shell启动脚本

    # chkconfig: 2345 10 90 # description: Start and Stop redis  PATH=/usr/local/bin:/sbin:/usr/bin:/bin ...

  4. Linux下tomcat服务

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  5. linux下tomcat服务的相关命令

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  6. PuTTy linux下tomcat服务的相关命令

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  7. Linux下shell通用脚本启动jar(微服务)

    Linux下shell通用脚本启动jar(微服务) vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please chan ...

  8. linux下维护服务器之常用命令

    linux下维护服务器之常用命令! 第1套如下: 正则表达式: 1.如何不要文件中的空白行和注释语句: [root@localhost ~]# grep -v '^$' 文件名 |grep -v '^ ...

  9. Linux下网络服务的安全设置

    Linux下网络服务的安全设置      Linux操作系统由于其良好的稳定性.健壮性.高效性和安全性.正在成为各种网络服务的理想平台.各种网络应用在Linux系统上部有性能卓越的应用,例如,提供We ...

随机推荐

  1. 【Gson】互相转化

    Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. 对象转为字符串 Strin ...

  2. dvd管理系统

    >>>>>>>>>>>>>>>>>>>> 语言:java 工具:eclipse ...

  3. css/js(工作中遇到的问题)-4

    JS生成随机的由字母数字组合的字符串 Math.random().toString(36).substr(2)

  4. Bug库

    netsh int tcp set global  ecn=disable C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe ...

  5. allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[System.DateTime]

    allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[S ...

  6. 通用js地址选择器

    用js实现通用的地址选择器,省份,城市,地区自动关联更新 点击下面查看详细代码: http://runjs.cn/code/s8sqkhcv 关键地址库代码: var addr_arr = new A ...

  7. CentOS6.5 – Iptables配置文件

    编辑防火墙配置文件: vi /etc/sysconfig/iptables 防火墙启动: service iptables restart 如果提示不存在配置文件,那就手动添加一个. 主要配置如下: ...

  8. Oracle分区

    可以参考文档:http://docs.oracle.com/cd/E18283_01/server.112/e16541/part_admin001.htm#insertedID0 (支持11g和12 ...

  9. 纯CCS绘制三角形箭头图案

    用CSS绘制三角形箭头.使用纯CSS,你只需要很少的代码就可以创作出各种浏览器都兼容的三角形箭头! CSS代码: /* create an arrow that points up */ div.ar ...

  10. java空指针异常:java.lang.NullPointException

    一.什么是java空指针异常 我们都知道java是没有指针的,这里说的"java指针"指的就是java的引用,我们不在这里讨论叫指针究竟合不合适,而只是针对这个异常本身进行分析.空 ...