Linux系统中调用脚本的常见方法

描述

在linux系统中有多种方法可以在系统启动后调用脚本,接下来介绍几种常见的方法

/etc/rc.local

/etc/rc.local是传统的系统初始化脚本,在广泛采用systemd之前,它由init系统使用。它是一个shell脚本,在启动过程的最后运行,允许用户执行自定义命令或启动服务。

它以root权限运行,并提供了一种简单的方式来进行系统定制或启动后台进程。

然而,随着systemd的引入,支持/etc/rc.local的地位在许多发行版中已经被弃用。systemd为自定义和服务管理提供了替代机制。

/etc/init.d/

/etc/init.d/是一个目录,历史上用于存储SysVinit的初始化脚本,SysVinit是许多Linux发行版常用的较早的init系统。这些初始化脚本通常是shell脚本,用于启动、停止、重启或管理服务。

SysVinit使用运行级别来定义系统状态,每个运行级别都可以有与之关联的初始化脚本,位置在 /etc/init.d/中。例如,脚本/etc/init.d/apache2可用于管理Apache web服务器。

虽然出于兼容性考虑,某些发行版仍然使用SysVinit及其关联的初始化脚本,但对于大多数现代Linux发行版来说,systemd已成为默认的init系统。

systemd

Systemd是一种现代化的init系统和服务管理器,已经在许多Linux发行版中取代了SysVinit。它引入了各种功能和改进,包括并行服务启动、套接字激活、日志记录和依赖关系跟踪。

systemd不再使用单独的初始化脚本,而是使用单元文件,即声明性配置文件,用于指定服务的管理方式。

单元文件通常存储在 /usr/lib/systemd/system/或 /etc/systemd/system/等目录中,并具有 .service 扩展名。它们定义服务单元、套接字单元、挂载单元等类型的单元,可以由systemd管理。

systemd还引入了目标或“systemd目标” 的概念,作为运行级别的替代。目标是服务或单元的逻辑组,定义了系统的整体状态或目的,例如 multi-user.target 或 graphical.target。

总的来说,与传统的init系统(如SysVinit)相比,systemd提供了改进的服务管理、并行启动、改进的日志记录以及更简化的系统初始化方法。

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分