记systemctl启动go程序

最近经常用到gin框架搭建API接口程序,在部署到服务器时,nohup方式感觉挺麻烦,虽然相应的命令保存在了shell文件中,但是还是要每次找到对应文件执行,就想着直接配置service文件形式,然后直接start、stop就行了,记录一下步骤和配置:

  1. 配置启动的shell文件demo.sh,之所以配置是因为Windows系统build的go程序文件,需要先授权用户可执行文件。
#!/bin/sh
sudo chmod +x demo && ./demo
  1. 将demo.sh和go文件放在同一目录,然后配置对应的service
  2. cd到/etc/systemd/system/下,创建demo.service:
touch demo.service
  1. 将如下配置拷贝到service文件中
[Unit]
Description="Just a demo"
After= network.target

[Service]
Type=simple
# 可根据实际情况修改user
User=root
WorkingDirectory=/root/demo/
# 根据实际情况配置
ExecStart=/bin/sh /root/demo/demo.sh
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
  1. 重新加载
systemctl daemon-reload
  1. 启动
systemctl start demo
  1. 查看启动状态
systemctl status demo
  1. 根据需要设置系统开机启动
systemctl enable demo

接下来再更新go文件时,就可以直接上传文件,systemctl restart一下就OK啦

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容