部署golang服务比部署python web服务要简单很多,运行golang程序就会自动编译出可执行文件(如果是在window下需要通过交叉编译方式编译下linux可执行文件),毕竟golang太强了。下面直接贴出go_app.service的配置文件。
[Unit] Description=golang web application After=syslog.target network.target [Service] Type=simple WorkingDirectory=/home/centos/go_pro/ ExecStart=/home/centos/go_pro/web_service_amd64 Restart=on-failure RestartSec=30 [Install] WantedBy=multi-user.target
与第一个实例一样简单介绍写配置文件。
[Unit]启动顺序与依赖
Description就是个简单的服务介绍
After指的是本服务需要在某些服务启动后才能启动
[Service]启动行为
Type指的是启动类型,这个很重要,需要根据你启服务的方式决定,由于启动golang程序是在主进程中启动并执行的且不会退出,那么Type就应该是simple。
WorkingDirectory是指当前的工作目录,这里设置成你项目路径
ExecStart是启动服务所需的指令,直接执行golang编译好的二进制文件即可。
Restart是指在什么情况下重启服务,这里的on-failure是指一旦程序启动失败或被中断就进行重启。
RestartSec参数可以用来控制重启间隔时间
[Install]服务安装相关配置
WantedBy是指将该服务归于哪个服务组,在multi-user.target服务组的服务可以设置开机启动。
设置完成后我们需要将这个配置文件放到/etc/systemd/system/文件夹下(需要root权限),重载systemd
cp ./go_app.service /etc/systemd/system/ systemctl daemon-reload
接下来启动服务
systemctl start go_app.service<>><>>查看服务状态
systemctl status go_app.service<>>关闭服务
systemctl stop go_app.service<>>设置服务开机自启动
systemctl enable go_app.service