Go程序在Linux作为后台应用daemon运行
2016-05-29 16:57
465 查看
之前用过很多方式,包括
&
nohup
模拟fork
用centos 7之后,发现最好的办法是作为systemd的service,Type为notify方式
一个简单的示例
service单元文件编写
Go程序
启动完成后向systemd汇报,完成启动
之后就能用systemd管理start stop restart等等
&
nohup
模拟fork
用centos 7之后,发现最好的办法是作为systemd的service,Type为notify方式
一个简单的示例
service单元文件编写
[Unit] Description=ewar gate server After=network.target [Service] Type=notify PIDFile=/usr/local/ewar/run/chat.pid ExecStartPre=/bin/rm -f /usr/local/ewar/run/chat.pid ExecStart=/usr/local/ewar/bin/chat -c /usr/local/ewar/etc/chat.ini --pidfile=/usr/local/ewar/run/chat.pid --log_dir=/usr/local/ewar/log ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID
Go程序
socketAddr := &net.UnixAddr{ Name: os.Getenv("NOTIFY_SOCKET"), Net: "unixgram", } if socketAddr.Name == "" { return SdNotifyNoSocket } conn, err := net.DialUnix(socketAddr.Net, nil, socketAddr) if err != nil { return err } defer conn.Close() _, err = conn.Write([]byte("READY=1"))
启动完成后向systemd汇报,完成启动
之后就能用systemd管理start stop restart等等
相关文章推荐
- 回顾linux系统编程学习过程
- Linux信号
- C语言下的FILE指针与Linux的文件描述符
- linux 的简单应用
- Unix & Linux笔记(15)
- centos6.5二进制安装mysql
- linux下安装jdk及配置环境变量
- Linux下的代码代码复制和转移方案(FTP配置)
- linux常用操作
- centos7 关闭firewall安装iptables并配置
- Linux(CentOS)中使用Mono+jexus部署Asp.net4.5网站
- use makefile on android-linux
- Linux常用命令
- Unix & Linux笔记(14)
- linux中Vim配置
- linux中make命令的简单使用以及Makefile文件的书写
- Linux 下安装Solr步骤
- 命令行编译中的argc argv
- CentOS 7安装msyql(yum和Mysql5.7(解压缩版))
- Linux中的find 指令