04月09, 2018

CentOS7设置Gogs开机启动

Gogs自带开机启动脚本,脚本地址在目录gogs/scripts下,本文就总结一下如果使用Gogs自带脚本实现Gogs开机启动 :

1、复制脚本

CentOS7使用systemd进行服务管理,所以这里使用的脚本是gogs/scripts/systemd中的文件,先将脚本放到CentOS7默认的脚本目录中:

cp gogs/scripts/systemd/gogs.service /lib/systemd/system/

2、修改脚本内容

Gogs项目中原始脚本内容如下:

[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target

修改时需要注意的事项:

  • After=mariadb.service mysqld.service postgresql.service memcached.service redis.service 需要修改为Gogs中使用到的服务,比如我这里使用了mysqlredis,所以我修改后的内容就是After=mysqld.service redis.service
  • User=root 指的是 启动Gogs的用户,如果是root,可以不做指定
  • Group=root 指的是 启动Gogs的用户所在的组,如果是root,可以不做指定
  • WorkingDirectory 指的是 Gogs所在的目录
  • ExecStart 指的是 Gogs的启动命令
  • Environment 指的是启动Gogs的环境,主要有USERHOMEUSER为所属用户,HOME为用户的根目录

下面是我按照本机设置修改之后的内容,可以作为参考:

[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mysqld.service redis.service

[Service]
Type=simple
WorkingDirectory=/data/www/gopath/src/github.com/gogits/gogs/
ExecStart=/data/www/gopath/src/github.com/gogits/gogs/gogs web
Restart=always
Environment=USER=root HOME=/home/

[Install]
WantedBy=multi-user.target

以上就是修改完成的Gogs开机启动的脚本

3、脚本管理命令

  • 开机启动Gogs服务 :systemctl enable gogs.service
  • 启动Gogs服务 :systemctl start gogs.service
  • 查看Gogs服务状态: systemctl status gogs.service
  • 停止Gogs服务:systemctl stop gogs.service
  • 重载Service配置:systemctl daemon-reload,该命令在修改gogs.service内容后使用

以上就是在CentOS7上设置Gogs开机启动的方法,有任何问题可以在本文下方留言。

本文链接:https://www.shaobin.wang/post/22.html

Comments