Linux系统的开机自启动

爱谁谁
发布: 2025-08-29 08:54:48
原创
346人浏览过

本文由joshua317原创,若需转载,请注明来源:转载自joshua317博客 https://www.php.cn/link/8ee15923664a1ff58e5f7fddfdb91679

在使用Windows操作系统时,启动电脑后会发现许多软件自动运行,而你并未手动启动它们。类似地,Linux系统也有类似的自启动机制。本文将探讨如何在Linux系统中管理开机自启动服务。

首先,我们需要理解一些基本概念。在Windows系统中,按下“微软标志键+R”键(微软标志键通常位于左侧“alt”键的左边),然后在弹出的对话框中输入“taskmgr”以打开任务管理器。你会看到许多正在运行的进程,其中一些是系统进程,另一些则是第三方软件进程。这些进程在后台默默运行,支持你的工作、娱乐和学习。某些进程在开机时启动,而其他进程则在用户使用时触发。

在Linux系统中,你可以通过命令行查看当前正在运行的进程:

ps -ef# ps --help 或 man ps 了解e和f参数的作用
登录后复制

理解了这些概念后,我们可以进一步了解如何管理Linux系统中的服务开机自启动。

在Linux中,管理服务启动的系统称为“systemd”,它是系统启动时第一个启动的进程,其进程ID(PID)为1。

Linux系统的开机自启动管理服务开机自启动的命令是systemctl。以下是如何使用systemctl查看和管理服务的示例:

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

Linux系统的开机自启动我们关注chrony的当前状态,它显示为enabled状态,这意味着它会在开机过程中被systemd启动,同时它处于running状态,表明它当前正在运行。

# 禁用chrony,我们不希望它在开机时启动,更改系统设置需要使用管理员权限,此处使用sudosudo 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,并手动启动它# 启用chronysudo systemctl enable chronyd.servicesudo systemctl start chronyd.service# 这次查看chrony,它已经恢复到之前的状态了systemctl status chronyd.service
登录后复制

Linux系统还提供另一种管理服务启动的方式:web控制台。

# 启动web控制台的服务sudo systemctl start cockpit.socket
登录后复制

在Rocky Linux系统中,打开Mozilla Firefox浏览器,访问https://localhost:9090,输入账号密码即可。

Linux系统的开机自启动切换到管理员权限后,你可以在web控制台中管理服务的启用与禁用。

打开服务管理页面,找到chronyd,点击进入管理界面:

Linux系统的开机自启动在管理界面中,你可以启用或禁用chronyd服务:

Linux系统的开机自启动然而,与命令行相比,web控制台的管理效率较低。例如:

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

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

在探索web控制台时,你可能会注意到systemctl还可以对服务进行启动、停止和重启操作:

sudo systemctl start chronyd.servicesudo systemctl stop chronyd.servicesudo systemctl restart chronyd.service
登录后复制

另外,systemctl还有一个mask功能:

# 将chronyd执行mask动作sudo systemctl mask chronyd.service
登录后复制

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

/dev/null是Linux系统中的“数据接收器”,它还有一个兄弟/dev/zero。它们就像黑洞一样,任何发送给它们的数据都会消失。例如:

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

systemctl使用mask的目的是什么呢?

Linux系统的开机自启动mask掉chrony会彻底禁用chrony服务。之前的disable操作只是阻止chrony在开机时自动启动,但你仍然可以通过systemctl start chronyd.service手动启动服务。然而,一旦执行mask操作,这个服务就无法启动或启用,相当于加强版的disable。

Linux系统的开机自启动因此,mask功能需谨慎使用。要解除mask,可以使用unmask命令:

# 解除chrony服务的masksudo 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博客 https://www.php.cn/link/8ee15923664a1ff58e5f7fddfdb91679

以上就是Linux系统的开机自启动的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号