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上运行,并且能够在系统启动时自动启动。

参考资料: 使用Systemd开机启动管理jar包

标签: Linux

相关文章

Linux下的SSH服务配置与安全使用指南

重要提示:本文只是我日常使用的参考,请你先在本地做好测试,以免修改后不能正常登录服务器。 尤其是密钥登录的情况,一定要先将公钥放到服务器对应目录中SSH(Secure Shell)是一种加密网络...

macOS下使用UTM安装Alpine Linux虚拟机

在macOS下使用UTM(Universal Turing Machine)安装Alpine Linux虚拟机是一个相对简单的过程,但需要一些基本的配置和步骤。以下是详细的指南,涵盖了从安装UT...

Linux下swap分区的使用及配置

在Linux系统中,Swap分区用于在物理内存(RAM)不足时,将部分内存数据转移到硬盘上,以释放内存空间。Swap分区对于系统的稳定运行至关重要,尤其是在内存资源有限的情况下。本文将详细介绍如...

如何实现让我们部署的Go应用在进程挂掉之后自动重启

在软件开发和部署过程中,确保应用的高可用性是至关重要的。对于使用Go语言开发的应用来说,实现在进程异常终止后自动重启是提高服务稳定性的有效策略之一。下面将围绕如何实现Go应用在挂掉之后自动重启进...

图片Base64编码

CSR生成

图片无损放大

图片占位符

Excel拆分文件