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配置文件中
目录
相关文章
|
6月前
|
安全 Ubuntu 应用服务中间件
基于code-server的云端编程环境部署
本文档描述如何在 Ubuntu 主机上部署 code-server(即“网页版 VS Code”),并通过 autossh 将服务反向隧道到跳板机、使用 Nginx 反向代理域名访问、以及使用 certbot 配置 HTTPS。适合在多设备间共享同一开发环境、并解决个人主机动态公网 IP 的访问问题。
1459 5
|
6月前
|
JSON 网络安全 数据格式
深入浅出Ansible技术原理——Ansible安全基线配置(一)
本系列深入解析Ansible安全自动化,涵盖其无代理、幂等性、声明式三大设计哲学,剖析基于Python的内核原理与SSH通信机制,并详解Inventory、Roles、Handlers、Vault等核心组件与最佳实践,助你从入门到精通,构建高效、安全、可复用的自动化运维体系。
391 7
|
6月前
|
Shell KVM 数据安全/隐私保护
深入浅出Ansible语法——Ansible安全基线配置(一)
本文由Prism撰写,系统讲解Ansible核心语法与实战技巧,涵盖变量、流程控制、错误处理、Roles、模板、Vault加密及常用模块,附丰富示例,助力运维与开发人员快速上手并应用于真实环境。
331 7
|
6月前
|
存储 Shell KVM
手动以及脚本创建KVM虚拟机——Ansible安全基线配置(二)
本教程介绍如何通过手动操作与Shell脚本两种方式创建KVM虚拟机,涵盖环境部署、存储池配置、镜像管理、cloud-init初始化及批量自动化创建。为后续Ansible安全自动化奠定基础,助力实现高效、可复用的服务器基线管控。
419 5
|
6月前
|
设计模式 缓存 安全
无锁编程与原子操作:构建极致性能的高并发队列
本文深入探讨无锁编程与原子操作在高并发队列中的应用,通过CAS、环形缓冲、版本化引用等技术,实现高性能、低延迟的线程安全队列,显著提升系统吞吐量,适用于日志、网络通信等高并发场景。
345 10
|
6月前
|
存储 调度 KVM
深入浅出KVM虚拟化技术原理——Ansible安全基线配置(一)
本文深入解析KVM虚拟化核心机制,涵盖内核如何调度QEMU进程与KVM模块协同工作、CPU虚拟化扩展(VT-x/AMD-V)的硬件加速原理,以及存储池的管理与优势,助你全面掌握KVM底层运行逻辑。
540 11
|
6月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 深度实战:Nacos + Sentinel + Gateway 整合指南
本指南深入整合Spring Cloud Alibaba核心组件:Nacos实现服务注册与配置管理,Sentinel提供流量控制与熔断降级,Gateway构建统一API网关。涵盖环境搭建、动态配置、服务调用与监控,助你打造高可用微服务架构。(238字)
1772 10
|
6月前
|
人工智能 自动驾驶 Java
AI时代,拒当“代码缝合师”:用“组合思维”重掌“原材料”的控制权
本文探讨AI时代为何仍需深究技术原理,揭示“拿来主义”背后是大脑“直觉”的省电本能。提出“组合思维”:通过主动思考拆解技术组合逻辑,将“元剧本”喂养直觉,实现从“代码缝合师”到“技术谱曲家”的思维跃迁,真正掌控技术本质。
229 6
|
6月前
|
人工智能 缓存 编解码
FFmpeg 官方汇编课程:写出快 5 倍的视频处理代码
FFmpeg官方开源汇编教程asm-lessons,手把手教你用SIMD指令优化音视频处理性能。从工具链到实战案例,掌握工业级高性能代码编写,提升程序效率数倍,适合C语言开发者进阶学习。
384 10