此方法运行是基于supervisord的,系统为centos  64位

所以先安装相应的程序

第一步、首先执行  curl https://bootstrap.pypa.io/ez_setup.py -o - | python

安装python的easy_install工具

第二步、 sudo easy_install supervisor 安装supervisor

第三步、通过 echo_supervisord_conf > /etc/supervisord.conf 生成一个基础的配置文件

Supervisord默认的配置文件路径为/etc/supervisord.conf,通过文本编辑器修改这个文件,下面是一个示例的配置文件:

;/etc/supervisord.conf
[unix_http_server]
file = /var/run/supervisord.sock
chmod = 0777
chown= root:root[inet_http_server]
# Web管理界面设定
port=9001
username = admin
password = yourpassword[supervisorctl]
; 必须和'unix_http_server'里面的设定匹配
serverurl = unix:///var/run/supervisord.sock[supervisord]
logfile=/var/log/supervisord/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=true              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)
user=root                 ; (default is current user, required if root)
childlogdir=/var/log/supervisord/            ; ('AUTO' child log dir, default $TEMP)[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface; 管理的单个进程的配置,可以添加多个program
[program:blogdemon]
command=/data/blog/blogdemon
autostart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisord/blogdemon.log

第四部、在默认的配置文件后面追加自己程序的运行配置 如上面配置最后[program:blogdemon]

Supervisord管理

Supervisord安装完成后有两个可用的命令行supervisor和supervisorctl,命令使用解释如下:

  • supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
  • supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:blogdemon]里配置的值,这个示例就是blogdemon。
  • supervisorctl start programxxx,启动某个进程
  • supervisorctl restart programxxx,重启某个进程
  • supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
  • supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。

小结

这小节我们介绍了Go如何实现daemon化,但是由于目前Go的daemon实现的不足,需要依靠第三方工具来实现应用程序的daemon管理的方式,所以在这里介绍了一个用python写的进程管理工具Supervisord,通过Supervisord可以很方便的把我们的Go应用程序管理起来。

转载于:https://www.cnblogs.com/dasn/articles/5688473.html

golang 程序部署及Supervisord deamon 运行相关推荐

  1. Pepper/Nao中级教程:第二章 如何将Python程序部署到机器人内部运行

    关于Naoqi之家 欢迎访问Naoqi之家,一个提供Pepper/Nao机器人中文开发手册的站点. http://www.naoqi.net 2.1 目标 写好的机器人程序,我们当然要脱离个人电脑,把 ...

  2. Pepper中级教程:第二章 如何将Python程序部署到机器人内部运行

    2.1 目标 写好的机器人程序,我们当然要脱离个人电脑,把这个程序部署到Pepper/Nao机器人内部运行. 2.2 实现思路 机器人的naoqi系统是基于Linux的系统,当然提供了FTP和SSH服 ...

  3. linux 运行go文件路径,go程序部署到linux上运行-Go语言中文社区

    go 语言版本:go1.9.2 开发环境:win10 部署环境:ubuntu 14.04.6 一.win10上的操作 1.在src目录下依次执行set CGO_ENABLED=0.set GOOS=l ...

  4. docker 容器运行 golang程序_「Docker」 - 运行 amp; 管理容器

    容器是基于容器技术所建立和运行的轻量级应用运行环境,它是Docker封装和管理应用程序或微服务的「集装箱」,在Docker中,容器是最核心的部分. 一.容器的创建和启动 Docker容器的生命周期里分 ...

  5. window环境编译在linux环境运行的golang程序

    1.打开windows命令行界面进入项目根目录,执行如下命令: SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 2.编译golang程序,得到与目录 ...

  6. 「GoCN酷Go推荐」golang 跨平台部署利器

    1 研究背景 go程序部署时,直接将编译好的文件在服务器上运行即可,一般无需安装所依赖的第三方库. Linux下部署分为以下几种方式: 使用nohup 命令 使用 Supervisord管理 使用sy ...

  7. golang应用部署

    程序开发完毕之后,我们现在要部署Web应用程序了,但是我们如何来部署这些应用程序呢?因为Go程序编译之后是一个可执行文件,编写过C程序的读者一定知道采用daemon就可以完美的实现程序后台持续运行,但 ...

  8. kubernetes 部署_kubernetes应用程序部署工具概述

    kubernetes 部署 Deploying applications to Kubernetes can be as simple as writing a few resource defini ...

  9. go项目部署:docker部署go项目直接运行二进制文件部署(两种方式进行部署)

    go项目部署:docker部署go项目&直接运行二进制文件部署 引言:之前断断续续的接触到项目部署,一直没有详细的了解部署,于是最近就好好的专研一下项目的部署,前期准备:一个自己或者别人的具有 ...

最新文章

  1. mybatis与mysql调优_MySQL + mybatis的SQL优化方案
  2. SAP 电商云 Spartacus UI DeliveryComponent 的依赖设计
  3. 2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开
  4. [转]ASP.NET实用技巧
  5. 中微公司2020年净利4.92亿元 投资中芯国际赚2.62亿
  6. svc的参考文献_WCF服务三:svc文件详解
  7. Linux下PhpMyAdmin程序目录的安全管理
  8. NLP领域,哪些综述性的文章值得推荐?
  9. php蓝奏云网盘源码,蓝奏云网盘pc版易语言开源软件源码
  10. python + opencv 中值滤波器、最大值滤波器和最小值滤波器
  11. C语言——计算标准差公式
  12. 九、Redis三种集群模式
  13. linux777命令,linux权限777 命令是什么意思
  14. Java学习笔记类对象多态继承(下)
  15. java 数字大小写转换工具类--适用于打印收据
  16. 【转】对 HTTP 304 的理解
  17. Redis主从复制详解(入门教程)
  18. 【零基础学WebGL】矩阵变换
  19. MacOS 升级到 MacOS Catalina 后无法使用PPTP协议问题
  20. Java ArrayList indexOf() 方法 和 String indexOf() 方法区别

热门文章

  1. webpack的四个核心概念
  2. #软件配置管理#之坏味道搜集
  3. 信息系统项目管理案例3
  4. vue音乐笔记_Vue音乐项目笔记(二)
  5. keil 查看 stm32 io波形_这样学习STM32单片机,从菜鸟到牛人很简单!
  6. 一文解读:如何从 0 到 1 打造小程序爆款裂变
  7. 【重磅】神策分析 1.13 版本上线 ,持续深耕打造场景化数据分析
  8. 几款开源的图形化Redis客户端管理软件推荐
  9. unity, eulerAngle
  10. 高级特性(2)- XML