一、Sysinit初始化模式
在Linux下想要实现开机自启动某个自定义的脚本或者指令,如果系统为Sysinit模式的初始化则可以在/etc/目录下的rc.local文件末尾添加需要执行的脚本。如开机执行脚本
./home/localhost/test.sh
则使用指令:
在末尾添加以下代码段:
需要注意的是,添加的指令需要在exit 0之前:
二、Systemd初始化模式
有时候我们在/etc/下发现并没有rc.local文件,那么我们就需要考虑安装的linux可能是systemd初始化模式了。Systemd初始化模式下会存在以下三个文件:
-
/etc/systemd/system
-
/usr/lib/systemd/system
-
/lib/systemd/system
这三个文件的作用是启动操作系统时会去读取以上路径下的配置文件、启动service以及执行程序,优先级如下:
根据以上描述可知路径/etc/systemd/system是系统级别的文件目录,存放一些系统管理员(root等)部署的安装unit,优先级最高,而/usr/lib/systemd/system是用户级别的文件目录,我们自定义的service一般就存放在这个目录下。如果三个目录同时存在名称相同的服务,则在启动时会根据优先级的顺序进行覆盖。
三、编写service自定义自启动文件
我们在路径/etc/systemd/system下新建一个以.service为后缀的文件名,以远程连接服务ssh.service为例,格式如下:
Service文件主要由三个部分组成:[Unit]、[Service]以及[Install]。
其中[Unit]的常用字段描述如下:
[Service]下的常用字段如下:
[Install] 下的常用字段如下:
四、启动service服务
完成service文件的自定义编写后,可在控制台下执行以下指令激活或者停用服务: