golang 程序部署及Supervisord deamon 运行
此方法运行是基于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 运行相关推荐
- Pepper/Nao中级教程:第二章 如何将Python程序部署到机器人内部运行
关于Naoqi之家 欢迎访问Naoqi之家,一个提供Pepper/Nao机器人中文开发手册的站点. http://www.naoqi.net 2.1 目标 写好的机器人程序,我们当然要脱离个人电脑,把 ...
- Pepper中级教程:第二章 如何将Python程序部署到机器人内部运行
2.1 目标 写好的机器人程序,我们当然要脱离个人电脑,把这个程序部署到Pepper/Nao机器人内部运行. 2.2 实现思路 机器人的naoqi系统是基于Linux的系统,当然提供了FTP和SSH服 ...
- linux 运行go文件路径,go程序部署到linux上运行-Go语言中文社区
go 语言版本:go1.9.2 开发环境:win10 部署环境:ubuntu 14.04.6 一.win10上的操作 1.在src目录下依次执行set CGO_ENABLED=0.set GOOS=l ...
- docker 容器运行 golang程序_「Docker」 - 运行 amp; 管理容器
容器是基于容器技术所建立和运行的轻量级应用运行环境,它是Docker封装和管理应用程序或微服务的「集装箱」,在Docker中,容器是最核心的部分. 一.容器的创建和启动 Docker容器的生命周期里分 ...
- window环境编译在linux环境运行的golang程序
1.打开windows命令行界面进入项目根目录,执行如下命令: SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 2.编译golang程序,得到与目录 ...
- 「GoCN酷Go推荐」golang 跨平台部署利器
1 研究背景 go程序部署时,直接将编译好的文件在服务器上运行即可,一般无需安装所依赖的第三方库. Linux下部署分为以下几种方式: 使用nohup 命令 使用 Supervisord管理 使用sy ...
- golang应用部署
程序开发完毕之后,我们现在要部署Web应用程序了,但是我们如何来部署这些应用程序呢?因为Go程序编译之后是一个可执行文件,编写过C程序的读者一定知道采用daemon就可以完美的实现程序后台持续运行,但 ...
- kubernetes 部署_kubernetes应用程序部署工具概述
kubernetes 部署 Deploying applications to Kubernetes can be as simple as writing a few resource defini ...
- go项目部署:docker部署go项目直接运行二进制文件部署(两种方式进行部署)
go项目部署:docker部署go项目&直接运行二进制文件部署 引言:之前断断续续的接触到项目部署,一直没有详细的了解部署,于是最近就好好的专研一下项目的部署,前期准备:一个自己或者别人的具有 ...
最新文章
- mybatis与mysql调优_MySQL + mybatis的SQL优化方案
- SAP 电商云 Spartacus UI DeliveryComponent 的依赖设计
- 2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开
- [转]ASP.NET实用技巧
- 中微公司2020年净利4.92亿元 投资中芯国际赚2.62亿
- svc的参考文献_WCF服务三:svc文件详解
- Linux下PhpMyAdmin程序目录的安全管理
- NLP领域,哪些综述性的文章值得推荐?
- php蓝奏云网盘源码,蓝奏云网盘pc版易语言开源软件源码
- python + opencv 中值滤波器、最大值滤波器和最小值滤波器
- C语言——计算标准差公式
- 九、Redis三种集群模式
- linux777命令,linux权限777 命令是什么意思
- Java学习笔记类对象多态继承(下)
- java 数字大小写转换工具类--适用于打印收据
- 【转】对 HTTP 304 的理解
- Redis主从复制详解(入门教程)
- 【零基础学WebGL】矩阵变换
- MacOS 升级到 MacOS Catalina 后无法使用PPTP协议问题
- Java ArrayList indexOf() 方法 和 String indexOf() 方法区别