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配置文件中
目录
相关文章
|
22天前
|
存储 调度 KVM
深入浅出KVM虚拟化技术原理——Ansible安全基线配置(一)
本文深入解析KVM虚拟化核心机制,涵盖内核如何调度QEMU进程与KVM模块协同工作、CPU虚拟化扩展(VT-x/AMD-V)的硬件加速原理,以及存储池的管理与优势,助你全面掌握KVM底层运行逻辑。
224 11
|
12天前
|
算法 安全 Java
压缩教程学习,文件压缩包解压推荐,BANDIZIP、win_RAR、7-Zip工作使用教程
压缩教程学习,文件压缩包解压推荐,BANDIZIP、win_RAR、7-Zip工作使用教程
383 138
|
28天前
|
SQL 数据采集 人工智能
评估工程正成为下一轮 Agent 演进的重点
面向 RL 和在数据层(SQL 或 SPL 环境)中直接调用大模型的自动化评估实践。
895 216
|
11天前
|
云安全 人工智能 运维
阿里云ACA认证是什么?有必要考吗?ACA工程师认证费用及考试大纲说明
阿里云ACA认证是初级职业认证,适合学生和初学者,系统学习云计算、大数据、AI等基础知识,掌握阿里云产品应用。考试60分钟,满分100分,80分及格,题型为选择题。现价450元,含2次考试机会。对入门者、求职者及非技术背景人员具高性价比,助力职业发展。
315 39
|
22天前
|
JSON 网络安全 数据格式
深入浅出Ansible技术原理——Ansible安全基线配置(一)
本系列深入解析Ansible安全自动化,涵盖其无代理、幂等性、声明式三大设计哲学,剖析基于Python的内核原理与SSH通信机制,并详解Inventory、Roles、Handlers、Vault等核心组件与最佳实践,助你从入门到精通,构建高效、安全、可复用的自动化运维体系。
128 7
|
22天前
|
存储 人工智能 关系型数据库
钉钉ONE选用阿里云PolarDB数据库,实现百亿级数据的高效向量检索
阿里云瑶池PolarDB PostgreSQL版作为钉钉ONE的底层数据库,凭借分布式架构与向量检索能力,支撑百亿级数据、高并发与AI智能推荐,助力钉钉实现“事找人”的办公新范式。
|
3天前
|
Oracle 安全 关系型数据库
Oracle Linux 9.7 发布 - Oracle 提供支持 RHEL 兼容发行版
Oracle Linux 9.7 发布 - Oracle 提供支持 RHEL 兼容发行版
167 114
Oracle Linux 9.7 发布 - Oracle 提供支持 RHEL 兼容发行版
|
5天前
|
Windows
dll错误修复 ,可指定下载dll,regsvr32等
dll错误修复 ,可指定下载dll,regsvr32等
168 95
|
17天前
|
存储 开发者 Python
Python f-strings:让字符串格式化更优雅
Python f-strings:让字符串格式化更优雅
250 115