当前位置: 首页 > news >正文

Linux(Ubuntu/CentOS)配置开机自启动服务

systemd和systemctl的区别和联系
systemd:是现代Linux系统中的初始化系统和服务管理器。它主要负责系统引导和进程管理,支持并行化启动服务,并提供高级的服务管理和依赖控制。
systemctl:是systemd的命令行工具,用于与systemd进行交互。它提供了一种便捷的方式来管理systemd所控制的服务。综上所述,systemd是Linux系统中的初始化系统和服务管理器,而systemctl是其命令行工具。它们之间既存在区别又相互联系,共同构成了Linux系统中强大的系统和服务管理框架。
确定Linux
如果不确定系统上使用的是哪种初始化系统:
1、查看系统是否有systemctl命令:列出当前正在运行的所有服务:systemctl list-units --type=service有就直接用这个。
2、如果没有systemctl,可以用命令行:ps 1 命令来查看PID为1的进程是什么。命令行:ps 1 // 这通常是系统的初始化进程,如systemd、init(SysVinit)或upstart(Upstart)
systemctl设置开机自启动服务

systemctl命令使得用户可以方便地启动、停止、重启、查看状态、启用或禁用系统服务。

命令行工具对应Linux版本说明
CentOS:CentOS 7及更高版本
Ubuntu:Ubuntu 15.04及以后的版本

列出当前正在运行的所有服务:systemctl list-units --type=service
检查服务的状态:sudo systemctl status 服务名.service
启动服务命令:sudo systemctl start 服务名.service
设置服务开机自启动:sudo systemctl enable 服务名.service // 服务将被添加到系统的启动项中,确保在系统启动时自动启动。
验证服务是否已被设置为开机自启动:sudo systemctl is-enabled 服务名.service // 如果返回enabled,则说明服务已设置为开机自启动。

init.d目录下创建启动脚本并配置开机自启动

update-rc.d命令在基于Debian和Ubuntu等Linux发行版中用于管理系统服务的启动和停止顺序。

1、进入init.d目录:cd /etc/init.d/
2、创建或编辑Shell启动脚本:
示例脚本(以myservice为例),保存为自己的服务名.sh:

	#!/bin/sh# /etc/init.d/myservice# Provides: myservice# Required-Start: $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Start daemon at boot time# Description: Enable service provided by daemon.case "$1" instart)echo "Starting MyService..."# 在这里添加启动服务的命令stop)echo "Stopping MyService..."# 在这里添加停止服务的命令*)echo "Usage: /etc/init.d/myservice {start|stop}"exit 1esacexit 0

3、赋予执行权限

	sudo chmod +x /etc/init.d/myservice

4、使用update-rc.d配置开机自启动

	命令行:sudo update-rc.d myservice defaults这将把myservice脚本添加到系统的默认运行级别(通常是2、3、4、5,对应多用户模式)的启动项中。

5、扩展 设置运行级别

	如果您需要设置特定的启动和停止顺序,可以使用update-rc.d的-s和-f选项来调整。例如:sudo update-rc.d myservice start 90 2 3 4 5 . stop 10 0 1 6 .这将设置在运行级别2、3、4、5时启动myservice,启动顺序为90;在运行级别0、1、6时停止myservice,停止顺序为10。验证运行级别配置:通过检查/etc/rcX.d/目录(其中X是运行级别)中的链接来验证配置是否成功。这些链接应该指向/etc/init.d/myservice脚本。
http://www.lryc.cn/news/510284.html

相关文章:

  • springboot3版本结合knife4j生成接口文档
  • 谈谈 Wi-Fi 的 RTS/CTS 设计
  • JVM 详解
  • 【debug】
  • PCB注意事项
  • Nmap使用指南
  • 社区版Dify 轻松实现文生图,Dify+LLM+ComfyUI
  • Python - 获取当前函数中的所有参数信息(名称和值)
  • PHP之伪协议
  • 关于Vue的子组件改变父组件传来的值
  • jvm排查问题-实践追踪问题 与思路--堆内堆外内存泄漏排查方针
  • 网络层协议--ip协议
  • 【总结整理】 神经网络与深度学习 邱锡鹏 课后习题答案 扩展阅读链接
  • 使用 Three.js 创建一个 3D 人形机器人仿真系统
  • 图像修复和编辑大一统 | 腾讯北大等联合提出BrushEdit:BrushNet进阶版来了
  • 【hackmyvm】Adroit靶机wp
  • 【Python运维】自动化备份与恢复系统的实现:Python脚本实战
  • Goland 安装与使用
  • vue2 升级为 vite 打包
  • FreeSwitch中启用WebRTC
  • R语言的数据类型
  • 基于UNET的图像分类
  • css文字折行以及双端对齐实现方式
  • 华为云语音交互SIS的使用案例(文字转语音-详细教程)
  • 设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
  • 学习笔记(prism--视频【WPF-prism核心教程】)--待更新
  • Kafka无锁设计
  • 【GO基础学习】gin框架路由详解
  • GPIO+TIM(无PWM)实现呼吸灯功能
  • 贪心算法.