在ubuntu下用mono-service运行SuperSocket

  最近用开源的SuperSocket 开发了服务端。当要在mono下运行时遇到很多比较麻烦的事让我走了不少弯路。现在将解决的方法写出来与大家一起分享,如有不足的地方请告之小白。

  下载江大的SuperSocket上面已经自带了

  文件:

  在ubuntu下用mono-service运行SuperSocket

  在Config文件里面检查下是否存在log4net.unix.config 在mono下运行需要这个。 在mono下可以删除掉UninstallService.bat 和 InstallService.bat这两个在linux下无用的。

  至于如何配置SuperSocket.SocketService.exe.config 以及拷贝你的dll等我就不详细描述 具体的可以参看这个http://supersocket.codeplex.com/wikipage?title=Start%20SuperSocket%20by%20Configuration

  在mono下将我写的bash脚本保存为supersocket 注意大小写和无文件扩展名 拷贝到 SuperSocket.SocketService.exe 在同一目录 

  修改SERVICE_PATH的路径

#!/bin/sh 

# control supersocket like windows service. copy this to your Working directory then ./supersocket {start|stop|restart}

#custom your servicename



SERVICENAME="SuperSocket"

SERVICE_PID=""

SERVICE_PATH="/root/SuperSocket/" #your Working directory



export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin



if [ -f "/var/run/${SERVICENAME}.pid" ]; then

 SERVICE_PID=$(cat /var/run/${SERVICENAME}.pid)

fi



case "$1" in

  start)

  if [ -z "${SERVICE_PID}" ]; then

    mono-service -d:${SERVICE_PATH} -l:/var/run/${SERVICENAME}.pid -m:supersocket.log SuperSocket.SocketService.exe  

    echo "${SERVICENAME} running"

  else

    echo "${SERVICENAME} is already running!"

  fi

  ;;

  stop)

  if [ -n "${SERVICE_PID}" ]; then

    kill ${SERVICE_PID}    

    echo "${SERVICENAME} stop success !" 

  else

    echo "${SERVICENAME} is not running!"

   fi

   ;;

  restart)

       $0 stop

       sleep 1

       $0 start

   ;;

   *)

       echo "usage: $0 {start|stop|restart}"

esac 



exit 0

 

  检查是否拥有脚本执行权限如果没有对这个脚本修改权限 0755

  sudo chmod 755 supersocket这个脚本的路径

  如果是使用WinSCP直接鼠标右键

  在ubuntu下用mono-service运行SuperSocket

  通过putty连接到远程服务器

  cd 到你服务运行的目录

  执行下面的命令(确保你是root 如果不是请加 sudo)

  ./supersocket start

  你编写的supersocket服务就运行起来.

  启动:./supersocket start  停止:./supersocket stop 重启:./supersocket restart这个和window下的 service很相似了吧 使用也很简单。

  

关于随着系统自动启动的方法。

在/etc/rc.local 或类试的开机启动脚本中加入下面这一行命令:

自行替换对应的目录

你服务所在目录/root/SuperSocket/supersocket start

在ubuntu下用mono-service运行SuperSocket

关于卸载。

如果在开机启动脚本里面加入了 开机启动,请自行删除掉。

如果服务正在运行请停止

然后删除掉所在服务目录即可

 

你可能感兴趣的:(service)