Linux系统的开机自启动

news2024/9/23 9:35:16

本文为joshua317原创文章,转载请注明:转载自joshua317博客 Linux系统的开机自启动 - joshua317的博客

当你使用windows操作系统时,开机后总会有各种软件自我启动完成,你并没有在桌面上点击它们的图标启动。比如某些安全卫士,某些听歌软件等等,它们在系统启动完成时并自动启动,而linux系统也有这样的机制,我们来看看linux如果管理开机自启动。

注:当前的进度位于“https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/index”,请在左侧滑动找到“5. Making systemd services start at boot time”,上一节的内容是“3. Configuring and managing network access”。“4. Registering the system and managing subscriptions”是redhat系统专有的收费订阅服务,而我们使用的rocky linux并不存在这一模式,因此这节内容我们忽略即可。

首先我们来明确一些概念,请在windows桌面按下“微软徽标键+R”,微软徽标键位于左侧“alt”侧的左边。

然后在弹出的对话框中输入“taskmgr”打开任务管理器,你会看到大量运行中的进程,这些进程中有些是属于系统进程,有些是属于第三方软件进程。而你在windows上工作娱乐学习等等,都是由这些进程在后台默默完成处理的。而有些进程就是在开机时启动的,有些则在进入系统后由用户使用时触发启动的。

你可以在linux的命令行中输入以下命令查看系统中正在运行中的进程。

ps -ef
# ps --help 或 man ps 了解e和f参数的作用

有了这些概念以后,我们就可以来了解如何去管理linux系统中的服务开机自启动(services start at boot time)。

在linux系统中,管理服务启动的系统叫“systemd”,它是linux系统启动时第一个启动的进程,后面所有的进程都是由这个进程启动,所以你会看到它的进程号PID为1。

管理服务开机启动与否的命令是systemctl,它的作用不止于此,但我们此刻只了解它与自启动管理相关的部分。

# 我们以时间同步服务chrony举例,查看chrony的状态。
# systemctl的参数支持tab键补齐,当你输入systemctl status ch时就可以多次敲击tab键,选择相应的服务名即可。
systemctl status chronyd.service

我们只关注这两个点,chrony当前是enabled状态,它会在开机过程中会被systemd服务启动,同时处理running状态,即表明它此刻正在运行当中。

# 禁用chrony,我们不希望它在开机时启动,更改系统设置需要使用管理员权限,此处使用sudo
sudo systemctl disable chronyd.service

# /etc/systemd/system/multi-user.target.wants/下是各种服务的启动描述文件链接,当软件安装在系统中时,所有软件都会在
# /usr/lib/systemd/system/下创建自己的启动描述文件,当需要开机自启时,会创建一个软链接到
# /etc/systemd/system/multi-user.target.wants/中。

# 再次查看chrony的状态,它是disable状态
systemctl status chronyd.service
# 重启系统,好验证禁用后的chronyd会不会被systemd启动。
reboot
# 待系统启动完成后,再次查看chrony的状态,它是disable以及inactive状态
systemctl status chronyd.service

# 我们再次启用chrony,并手动启动它
# 启用chrony
sudo systemctl enable chronyd.service
sudo systemctl start chronyd.service

# 这次查看chrony,它已经恢复到之前的状态了
systemctl status chronyd.service

官方文档里还提供了另一种管理服务启动的方式:web console。

web console文档:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_systems_using_the_rhel_8_web_console/index

# 启动web console的服务
sudo systemctl start cockpit.socket

Bash

Copy

打开rocky linux系统中的火狐浏览器Mozilla Firefox,访问https://localhost:9090,输入账号密码即可。

注意切换到管理员权限,之后便可以在这里管理服务的启用与禁用。

打开service,并找到chronyd,点击chronyd进入管理页面:

管理chronyd的启用与禁用:

不过相比命令行,web console的管理效率并不高,比如:

# 同时禁用多个服务
sudo systemctl disable crond.service chronyd.service
# 将刚刚禁用的多个服务同时启用
sudo systemctl enable crond.service chronyd.service

所以当熟练使用命令行(CUI)进行系统管理操作时,相比图形界面(GUI)效率会高很多。

不过,当你在探索web console时,有没有注意到过这个东西:

systemctl可以对服务进行启动,停止,重启:

sudo systemctl start chronyd.service
sudo systemctl stop chronyd.service
sudo systemctl restart chronyd.service

但是这个mask是干什么的?

我们不妨来试试:

# 将chronyd执行mask动作
sudo systemctl mask chronyd.service

随后命令结果提示“Created symlink /etc/systemd/system/chronyd.service → /dev/null.”,它将chrony的自启描述文件链接到了/dev/null。

/dev/null 是linux系统中的“data sink”,它还有一个兄弟叫/dev/zero。它们就像黑洞一样,任何给予它们的文件数据都会消失,比如:

# echo一些文字保存下来
echo "testing" > test.txt
cat test.txt
# 但是将文字输出到/dev/null中什么都不会发生,输出文件直接消失
echo "testing" > /dev/null

但是systemctl这么做的目的是什么呢?

mask掉chrony,会彻底禁用掉chrony服务。之前的disable动作只是不让chrony开机自启,至少我还能通过systemctl start chronyd.service的方式手动启动这个服务,但如果将chronyd执行mask,这个服务就彻底无法启动了,也无法启用了,堪称加强版的disable。

因此mask功能要慎用。解除mask使用unmask即可:

# 解除chrony服务的mask
sudo systemctl unmask chronyd.service
# 启用chronyd服务,--now会同时启动服务
sudo systemctl enable chronyd.service --now

那如何查看系统中有哪些服务是启用的,哪些是禁用的?

# 显示systemd当前的units状态,此状态是各服务的运行状态
systemctl list-units
# 显示systemd当前已经安装的units状态,如/usr/lib/systemd/system/chronyd.service,这个就是安装chrony产生的units文件。
systemctl list-unit-files
# 查看服务的自启动状态以list-unit-files为准

# 但是系统服务太多,我想分类查看该如何做?

# 查看系统中已经enable的服务
systemctl list-unit-files --state=enabled
# 查看系统中已经disable的服务
systemctl list-unit-files --state=disabled

# --state还可以与list-units结合使用,具体可使用以下命令查询用法
systemctl --state=help

本文为joshua317原创文章,转载请注明:转载自joshua317博客 Linux系统的开机自启动 - joshua317的博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

享元模式分析与实践

享元就是共享单元(元素)的意思。单元代表了整体的部分,如果一个对象其中的部分是稳定的不会改变的,那么这个部分即可以共享。享元模式的用途就是复用对象的单元,让对象的节省内存。 一、享元模式与单例模式区别 单例…

基于C++实现(控制台)停车场管理系统【100010020】

停车场管理系统 1 需求分析 1.1问题描述 停车场内只有一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。 汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场…

vite3+vue3二次封装antdvue组件方法

有时候,第三方的组件库不能满足我们的业务需求,就有必要对别人的组件进行再次的封装,下面我们以antdvue里面的button组件二次封装为例,研究下封装的过程 最后效果 基础代码 <template><div><a-button type="primary" v

网络爬虫urllib库常用函数解析

文章目录前言urllib介绍urllib发送请求urllib编码与解码urllib异常处理urllib使用IP代理urllib使用cookie前言 快期末了&#xff0c;有个数据挖掘的大作业需要用到python的相关知识&#xff08;这太难为我这个以前主学C的人了&#xff0c;不过没办法还是得学&#x1f602;&…

我的周刊(第069期)

我的信息周刊&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。&#x1f3af; 项目ChatGPT[1]本周最火爆的项目是 ChatGPT 应该没有意义…

ChatGPT使用初体验

ChatGPT使用初体验 注册chatGPT ChatGPT官网&#xff1a;https://openai.com/blog/chatgpt/ 登录官网进行账号注册&#xff1a; 我相信以各位小伙伴的能力是可以成功注册到账号的。 ChatGPT使用 自从在抖音上、CSDN上看到众多大佬对ChatGPT的一致好评&#xff0c;顿时我就…

论文笔记-时序分类-Rocket

论文标题&#xff1a; ROCKET: exceptionally fast and accurate time series classification using random convolutional kernels 论文链接&#xff1a; https://www.xueshufan.com/publication/3042807565 代码链接&#xff1a; https://github.com/angus924/rocket 发表年份…

Linux系统网络编程——第十九节 多路复用(1)(概念、select、poll)

目录 概念引出 select select的特点 select缺点 poll 概念引出 我们来思考一个问题&#xff1a; 什么叫IO(input output)? 读取或者写入&#xff08;IO&#xff09;本质就是&#xff1a;等拷贝。 读&#xff1a;等将数据从内核空间&#xff08;缓冲区&#xff09;拷贝…

C++(第十一篇):继承(基类与派生类、菱形继承和菱形虚拟继承问题)

&#x1f4d2;博客主页&#xff1a;Morning_Yang丶 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4cc;本文所属专栏&#xff1a;【C拒绝从入门到跑路】 &#x1f64f;作者水平有限&#xff0c;如果发现错误&#xff0c;敬请指正&am…

虚拟机||后续1:使用Virtual Box7.0.4安装Ubuntu20.04图文教程+解决时间显示乱码问题

这个博主超爱碎碎念&#xff1a;&#xff09; 哈喽&#xff0c;四海八方的友友们&#xff0c;我胡汉三又回来啦&#xff08;&#xffe3;︶&#xffe3;&#xff09;↗ 有挺长一段时间没更新了&#xff0c;转眼间12月了&#xff0c;又到年底冲业绩的时候啦ψ(&#xff40;∇)ψ…

【大数据入门核心技术-Hadoop】(七)Hadoop基本Shell命令行

目录 一、 三种shell命令方式 二、常见Shell操作命令 1、创建文件夹 2、查看指定目录下内容 3、上传文件到HDFS指定目录下 4、查看HDFS文件内容 5、下载HDFS文件 6、拷贝HDFS文件 7、追加数据到HDFS文件中 8、HDFS数据移动操作 9、创建文件 10、查看磁盘使用情况 1…

金融信创与云化转型|基金超融合架构转型与场景探索合集

随着数字化经济的蓬勃发展&#xff0c;基金数字化转型作为金融行业发展的重点被提上日程。其中&#xff0c;证监会于 2022 年 4 月发布的《关于加快推进公募基金行业高质量发展的意见》中强调&#xff0c;基金行业应强化行业基础设施建设&#xff0c;以拥抱数字化金融市场&…

MySQL内置函数

MySQL内置函数1 .日期函数2.字符串函数3.数学函数4.其它函数5.综合练习题1 .日期函数 current_date() 当前日期获得年月日 mysql> select current_date(); ---------------- | current_date() | ---------------- | 2022-12-10 | ---------------- 1 row in set (0.0…

C语言基础—程序创建过程和编译过程

C程序的创建过程 4️⃣ C 程序的创建过程有4️⃣个基本步骤&#xff1a; 编写、编译、链接和运行。 编写&#xff1a;用文本编辑器或IDE编写源代码。源代码包含程序所需的所有命令和语句。编译&#xff1a;使用编译器对源代码进行编译&#xff0c;生成可执行文件。 - .o 文件…

gyp ERR find Python 解决方案

命令行报错如下 E:\vue-admin\node_modules\fibers>if not defined npm_config_node_gyp (node "D:\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild --releas e ) else (node "…

Java项目:SSM物流快递管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 仓库管理员角色包含以下功能&#xff1a; 仓库管理员操作,入库操作,员工查看,揽收快件,新建员工等功能。 快递员角色包含以下功能&#xff1a; …

Nacos服务注册解析

服务注册就是在微服务启动时自动注册进nacos注册中心&#xff0c;核心逻辑就是在启动时调用nacos-server端的http接口:/nacos/v1/ns/instance&#xff0c;具体参考nacos官方文档。 我们打开nacos源码结构查看 上图为Nacos2.2的源码结构.其中比较核心的就是这几个包&#xff1…

墨者学院 PHP代码分析溯源(第4题) 详解

今天继续给大家介绍CTF通关writeup&#xff0c;本文主要内容是墨者学院 PHP代码分析溯源(第4题)。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严…

尝试使用CubeMX做stm32开发之十四:FatFs的基础知识

一、文件系统概念 文件系统&#xff1a;在存储介质中建立一种组织架构&#xff0c;以更好地储存和管理数据 文件系统一般包含&#xff1a;操作系统引导区、目录、文件等 文件系统中数据以文件的形式存储 文件系统中数据的存取需要遵循特定的格式 与直接操作存储介质相比&a…

[附源码]计算机毕业设计基于SpringBt的演唱会购票系统论文2022Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…