linux 脚本开机启动

Linux 脚本开机启动

Ubuntu:

如果要添加为开机启动执行的脚本文件,可先将脚本复制或者软连接到/etc/init.d/目录下,然后用:

update-rc.d xxx defaults number 命令(number为启动顺序), 将脚本添加到初始化执行的队列中去。

注意如果脚本需要用到网络,则NN需设置一个比较大的数字,如99,以防网络服务还没有启动。

  1. 将你的启动脚本复制到 /etc/init.d目录下,以下假设你的脚本文件名为 test。
$ ln -s /root/start.sh /etc/init.d/my_test_script  # 建立软连接
  1. 设置脚本文件的执行权限
$ sudo chmod 777 /etc/init.d/my_test_script
  1. 执行如下命令将脚本放到启动脚本中去:

    设置启动和关闭顺序为90,级别默认

$ cd /etc/init.d
$ sudo update-rc.d my_test_script defaults 90

centOS

  1. 编写要开机启动的脚本:

auto_start.sh

#!/bin/sh
#chkconfig: 12345 80 90
#description:auto
echo "Started..." > start.log

注意:第2,3行代码是必须的。否则可能报错

第二行:12345 代表针对开机等级1/2/3/4/5;80 代表启动此服务的级别;90 代表关闭此服务的级别(数字越小,优先级越高)

第三行:描述而已

所以意思就是:针对启动等级12345,使用80优先级开启此脚本。针对等级06,使用90优先级关闭此脚本

  1. 复制到/etc/rc.d/init.d//etc/init.d/ 下,或创建软连接到目录下
$ ln -s /root/auto_start.sh /etc/rc.d/init.d/auto_start.sh
  1. 赋予执行权限,并添加服务
$ cd /etc/rc.d/init.d
$ chmod 777 auto_start.sh

$ chkconfig --add auto_start.sh
$ chkconfig auto_start.sh on

原理:实质上就是在 rc0.d - rc6.d 目录下,分别创建了软连接

将脚本复制到 /etc/init.d/ ,手动执行下面这些命令,并赋予权限,和上面步骤是一样的。第一行的 K90auto_start.sh ,注意K代表关闭,S 代表开启。

ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc0.d/K90auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc1.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc2.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc3.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc4.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc5.d/S80auto_start.sh
ln -s /etc/init.d/auto_start.sh /etc/rc.d/rc6.d/K90auto_start.sh

注:开机等级数字:

  • 等级0表示:表示关机
  • 等级1表示:单用户模式
  • 等级2表示:无网络连接的多用户命令行模式
  • 等级3表示:有网络连接的多用户命令行模式
  • 等级4表示:不可用
  • 等级5表示:带图形界面的多用户模式
  • 等级6表示:重新启动
posted @ 2021-07-29 16:09  wztshine  阅读(405)  评论(0编辑  收藏  举报