美文网首页
Liunx设置脚本开机启动办法

Liunx设置脚本开机启动办法

作者: 张都尉 | 来源:发表于2021-03-12 09:52 被阅读0次

    -- liunx和windows机制不太相同,为了达到如重启后不再手动启动对应的内容的话 我们可以做到如下几方面来实现开启动免去手动启用自己的应用

    • 使用crontab任务

    cron 在系统中有一个运行着的守护进程,当系统时间符合某一条规划记录时, 守护进程就会启动相应的任务。可以通过crontab -e来查看任务,

        sudo crontab -e -u root
        可以修改root用户的crontab,换成其他用户就可以修改对应的crontab。
        在这里,使用@reboot 选项来设置开机启动。比如开机执行下面的auto.sh脚本。
       @reboot  /root/script/auto.sh &
    
    • 使用 /etc/rc.local

    /etc/rc.local文件可以在开机时执行用户自定义的任务,查看文件内的说明信息:This script is executed at the end of each multiuser runlevel。Make sure that the script will "exit 0" on success or any other value on eror。

    这个文件是系统初始化的末尾执行的一个脚本,启动任务需要加在“exit 0”之前。rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。但是太多的任务加入这个脚本中, 不但会拖慢开机速度, 还会造成管理上的混乱。如果要想随开机启动某些服务,我们再来看下一种方法。

    • /etc/init.d 来实现自动开机

      /etc/init.d文件夹包含很多脚本,作用是把进程包装成了一个服务, 定义了它在启动、 重启和终止时的具体行为,用户在启用相应服务时, 就不用进行太复杂的设置。比如service mysql restart/stop/start/status来开启、停止和查看数据库mysql的状态。我们来看一下rc3.d(即命令行模式)目录:



      /etc/init.d/mysql 还不能随开机启动,Linux 在开机启动时, 真正检查的是/etc/rcN.d文件夹, 执行其中的脚本, 这里的 N 代表了运行级别。需要把中的服务复制到或者建立软连接到/etc/rcN.d 上, 才能让该服务在 N 运行级别开机时启动。不过, 我们可以利用update-rc.d 命令更方便地进行。
      如在默认的运行级别建立软链接:

         update-rc.d mysql defaults
    
        删除默认运行级别下的软链接:
    
        update-rc.d cron remove
    
    • 最后一种笨办法 那么就是建立startup.d目录 ,使开启时遍历下如下开机脚本

    从/etc/profile文件得到灵感,建立脚本或者服务startup,用上面的三种方法来开机启动startup,然后读取/home/root/startup.d目录下的脚本,遍历执行目录下的脚本,这样就可以将需要开启启动的脚本放置于这个目录下,方便使用与维护。

    脚本或服务内容为:

    if [ -d /home/root/startup.d ]; then
      for i in /home/root/startup.d/*.sh; do
        if [ -r $i ]; then
         . $i
        fi
      done
      unset i
    fi
    
    • 结语

    方法有很多种 有的还使用环境变量里面的文件来做开机启动的,但环境变量会引起操作上的混乱。像有些bash运行的也会运行一次。所以这引起一定程序的混乱。结合自己实际环境,方法有很多种,合适自己的那种就是最正确的。

    相关文章

      网友评论

          本文标题:Liunx设置脚本开机启动办法

          本文链接:https://www.haomeiwen.com/subject/slgaqltx.html