Linux如何部署服务并设置为开机自启

简介: 系统ctl命令用于管理Linux服务,包括启动、停止、重启和重载配置等操作。journalctl命令可查看特定服务日志。编写服务文件时需定义[Unit]、[Service]和[Install]部分,通过systemctl管理新服务并设置开机自启。
  1. systemct命令系列

    1. 核心管理命令
      1. start
        1. 启动一个服务
      2. stop
        1. 停止一个服务
      3. restart
        1. 重启一个服务
      4. reload
        1. 重新加载配置
      5. status
        1. 查看服务状态
    2. 开机自启管理命令
      1. enable
        1. 设置服务开机自启
      2. disable
        1. 取消服务开机自启
      3. is-enabled
        1. 检查服务是否开机自启
      4. mask
        1. 彻底禁用服务
      5. unmask
        1. 取消禁用
    3. 查看与诊断命令
      1. list-units
        1. 列出所有正在运行的单元
      2. list-unit-files
        1. 列出所有已安装的单元文件及其状态
      3. show
        1. 显示服务的详细属性
      4. cat
        1. 查看服务的单元文件内容
  2. journalctl -u

    1. 查看特定服务的日志
    2. journalctl -u nginx -f
      1. 实时监控Nginx的日志输出,像看直播一样
    3. journalctl -u nginx --since "10 min ago
      1. 只看最近10分钟的日志
  3. 编写服务清单

    1. 所有由我们自定义的服务清单,都应该放在/etx/systemd/system/目录下
    2. 一个典型的.service文件由三个部分组成
      1. [Unit](服务的自我介绍)
        1. Description
          1. 服务的描述,简单易懂
        2. After
          1. 定义启动顺序
          2. After=network.target
            1. 意思是,这个服务硬爱在网络准备好之后再启动
        3. Wants/Requires
          1. 定义依赖关系
            1. Wants
              1. 弱依赖
                1. 它依赖的服务启动失败了,不影响自己启动
            2. Requires
              1. 强依赖
                1. 强依赖无法启动,要启动的服务也启动不了
      2. [Service](服务的核心工作)
        1. Type
          1. 服务的启动类型
            1. simple(默认)
              1. ExecStart后面的命令就是主进程
            2. forking
              1. ExexStart会启动一个进程,这个进程会fork一个子进程作为主进程,然后父进程退出
                1. 传统后台守护进程常用
            3. oneshot
              1. 类似simple,但systemd会等待这个命令执行完毕才认为服务启动成功,适合一次性脚本
        2. User/Group
          1. 指定用哪个用户和组来运行服务,为了安全,一般不使用root
        3. WorkingDirectory
          1. 命令执行前切换到的工作目录
        4. ExecStart
          1. 核心
            1. 定义启动服务的命令
        5. ExecReload
          1. 定义执行systemctl reload时运行的命令
        6. ExexStop
          1. 定义执行systemctl stop时运行的命令(可选)
        7. Restart
          1. 定义什么情况下自动重启服务
            1. no(默认)
              1. 不重启
            2. on-failure
              1. 当服务以非0状态码退出时重启
            3. always
              1. 只要服务退出,不管什么原因,都重启
      3. [Install](服务的户口本)
        1. WantedBy
          1. 定义服务属于哪个“目标集”,对于绝大多数开机自启的网络服务,都写WantedBy=multi-user.target
            1. 表示系统进入“多用户模式”时,这个服务就应该被启动
              1. systemctl enable命令就是靠这个配置来创建软链接的
  4. 示例

    1. 编写服务清单文件

    2. 用systemctl管理新服务

      1. 通知systemd,系统中新增了服务
        1. sudo systemctl daemon-reload
          1. 每次修改或新增.service文件后,必须执行此命令
      2. 启动服务
        1. sudo systemctl start [xxx].service
      3. 检查状态
        1. systemctl status [xxx].service
      4. 验证脚本是否工作
        1. tail -f /tmp/[xxx].log
      5. 设置开机自启
        1. sudo systemctl enable [xxx].service
      6. 停止与禁用
        1. sudo systemctl stop [xxx].service
        2. sudo systemctl disable [xxx].service
  5. 注意

    1. 一般使用命令来设置开机自动启动,而不是使用,service配置文件中
目录
相关文章
|
7月前
|
安全 Ubuntu 应用服务中间件
基于code-server的云端编程环境部署
本文档描述如何在 Ubuntu 主机上部署 code-server(即“网页版 VS Code”),并通过 autossh 将服务反向隧道到跳板机、使用 Nginx 反向代理域名访问、以及使用 certbot 配置 HTTPS。适合在多设备间共享同一开发环境、并解决个人主机动态公网 IP 的访问问题。
1635 5
|
7月前
|
Shell KVM 数据安全/隐私保护
深入浅出Ansible语法——Ansible安全基线配置(一)
本文由Prism撰写,系统讲解Ansible核心语法与实战技巧,涵盖变量、流程控制、错误处理、Roles、模板、Vault加密及常用模块,附丰富示例,助力运维与开发人员快速上手并应用于真实环境。
389 7
|
7月前
|
JSON 网络安全 数据格式
深入浅出Ansible技术原理——Ansible安全基线配置(一)
本系列深入解析Ansible安全自动化,涵盖其无代理、幂等性、声明式三大设计哲学,剖析基于Python的内核原理与SSH通信机制,并详解Inventory、Roles、Handlers、Vault等核心组件与最佳实践,助你从入门到精通,构建高效、安全、可复用的自动化运维体系。
462 7
|
7月前
|
存储 Shell KVM
手动以及脚本创建KVM虚拟机——Ansible安全基线配置(二)
本教程介绍如何通过手动操作与Shell脚本两种方式创建KVM虚拟机,涵盖环境部署、存储池配置、镜像管理、cloud-init初始化及批量自动化创建。为后续Ansible安全自动化奠定基础,助力实现高效、可复用的服务器基线管控。
451 5
|
7月前
|
设计模式 缓存 安全
无锁编程与原子操作:构建极致性能的高并发队列
本文深入探讨无锁编程与原子操作在高并发队列中的应用,通过CAS、环形缓冲、版本化引用等技术,实现高性能、低延迟的线程安全队列,显著提升系统吞吐量,适用于日志、网络通信等高并发场景。
396 10
|
4月前
|
存储 人工智能 JavaScript
OpenClaw(Clawdbot)新手一键秒级部署教程,零技术也能玩转专属AI助手,附OpenClaw本地部署方案
在AI工具深度渗透工作与生活的2026年,一款能自主处理任务、适配多场景需求的专属AI助手,成为提升效率的核心装备。OpenClaw作为开源AI代理与自动化平台,其前身为Clawdbot,曾短暂更名为Moltbot,凭借强大的任务自动化、多工具对接及自然语言交互能力,被用户誉为“私人AI员工”。以往复杂的部署流程让不少普通用户望而却步,而2026年阿里云推出的一键秒级部署方案,通过预置专属应用镜像,将原本需要数小时的配置流程压缩至分钟级,哪怕是零技术基础的新手,也能快速拥有专属AI助手。本文结合最新官方教程与实操经验,完整拆解部署、配置、验证全流程,同时覆盖本地部署备选方案与核心API配置细节
1367 0
|
7月前
|
存储 调度 KVM
深入浅出KVM虚拟化技术原理——Ansible安全基线配置(一)
本文深入解析KVM虚拟化核心机制,涵盖内核如何调度QEMU进程与KVM模块协同工作、CPU虚拟化扩展(VT-x/AMD-V)的硬件加速原理,以及存储池的管理与优势,助你全面掌握KVM底层运行逻辑。
579 11
|
7月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 深度实战:Nacos + Sentinel + Gateway 整合指南
本指南深入整合Spring Cloud Alibaba核心组件:Nacos实现服务注册与配置管理,Sentinel提供流量控制与熔断降级,Gateway构建统一API网关。涵盖环境搭建、动态配置、服务调用与监控,助你打造高可用微服务架构。(238字)
2004 10
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
4174 0