• 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表示:重新启动
  • 相关阅读:
    c++ 函数中的部分代码执行一次
    如何限制对象只能建立在堆上或者栈上
    FFMPEG Qt视频播放器
    C/C++中带可变参数的函数
    柔性数组
    压缩图片网站
    vscode存盘时格式化
    两个i标签之间有缝隙
    node 中process进程argv,argv0,execArgv,execPath
    chalk插件 使终端输出的字带颜色
  • 原文地址:https://www.cnblogs.com/wztshine/p/15075614.html
Copyright © 2020-2023  润新知