CentOS/Debian下如何将一个Go应用设置为系统开机服务-systemd

在CentOS和Debian这两种Linux发行版上,将Go应用程序设置为系统开机服务通常涉及到使用systemd,这是大多数现代Linux系统用于管理系统服务(也称为守护进程)的系统和服务管理器。以下是详细的步骤,首先针对CentOS(以CentOS 7为例),然后是Debian(以Debian 9及以上版本为例)。

CentOS (使用 systemd)

  1. 编写服务文件
    创建一个新的systemd服务文件/etc/systemd/system/yourapp.service,使用以下内容替换其中的参数(比如ExecStartUser等)以适应你的Go应用:

    [Unit]
    Description=Your Go Application
    After=network.target
    [Service]
    User=youruser
    ExecStart=/path/to/your/go-app
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    • Description:服务的描述。
    • After:指定服务启动的依赖关系,这里是在网络服务之后启动。
    • User:指定运行服务的用户。
    • ExecStart:Go应用程序的完整路径。
    • Restart:设置服务失败时的重启策略。
  2. 重新加载systemd管理器配置

    sudo systemctl daemon-reload
  3. 启动服务

    sudo systemctl start yourapp.service
  4. 设置开机自启

    sudo systemctl enable yourapp.service
  5. 检查服务状态

    sudo systemctl status yourapp.service

    Debian (使用 systemd)

    步骤与CentOS基本相同,因为Debian 9及以上版本也使用systemd作为服务管理器。

  6. 编写服务文件
    /etc/systemd/system/目录下创建一个名为yourapp.service的文件,内容可以与上面的CentOS示例相同。
  7. 重新加载systemd配置并启动服务
    执行以下命令来重新加载配置,启动服务,并设置开机自启:

    sudo systemctl daemon-reload
    sudo systemctl start yourapp.service
    sudo systemctl enable yourapp.service
  8. 检查服务状态

    sudo systemctl status yourapp.service

    注意事项

  9. 确保你的Go应用程序具有执行权限:

    chmod +x /path/to/your/go-app
  10. 如果你的应用程序需要在特定的环境下运行(例如,需要特定的环境变量),可以在service文件的[Service]部分添加Environment指令来设置环境变量。
  11. 对于涉及网络的应用程序,确保After=network.target已经足够满足你的应用程序启动顺序的需求。如果需要数据库等其他服务,可能需要添加更多的依赖项。
    通过以上步骤,你的Go应用程序应该能够作为系统服务在CentOS或Debian上运行,并且能够在系统启动时自动启动。

标签: Linux

相关文章

使用Systemd开机启动管理jar包

平日里测试jar包都直接java -jar xxx.jar 这样启动,如果要让其后台运行,也是使用nohup来跑今天给介绍一个用centos服务的方式启动假设我们的服务名称就叫lvtao,要启动...

Linux云服务器磁盘动态扩容

1.通过云主机商面板在线购买扩容后,有的主机商是需要通过面板重启服务器后才会生效.2.运行命令fdisk -lu查看实例的云盘情况System取值Linux表示为MBR分区。System取值GP...

图片Base64编码

CSR生成

图片无损放大

图片占位符

Excel拆分文件