zoukankan      html  css  js  c++  java
  • 设置Linux自启服务以及优先级

    一、 启动优先级

    今天有一台服务器没有正常启动,原因是有一个服务没有启动起来,因为A服务需要B服务启动之后才能正常启动,所以需要调整A,B服务的启动顺序。在网上查找了一些资料,总结了一下,以备以后需要。

        要知道服务的启动顺序,就需要先知道服务如何启动的。linux有7个运行级别,用户可选择不同的运行级别。进入/etc/rc.d/目录,可查看到对应从rc0.d到rc6.d等7个目录,这些目录即对应7个级别。

    下面有这么几个目录值得注意:
    rcS.d rc0.d rc1.d ... rc6.d ,
    (0,1... 6 代表启动级别: 0代表停止,1代表单用户模式,2-5代表多用户模式,6代表重启)

    进入rc3.d目录,可看到各种以K或者S开始的服务,K表示启动,S表示停止,而后面的数字就表示启动顺序。我们以熟悉的network服务为例,这里只是个链接,其实还是指向/etc/init.d/network,其启动值为27。

      在rc?.d中的都是链接文件,链接在/etc/init.d中的脚本。

    在脚本中,有#chkconfig 一行,这一行描述了当设置为自启动的时候,这个脚本的启动优先级和关闭的时候的关闭优先级。

           例如,我们看network脚本:


    我们可以看出,network脚本在被设置为自启动的时候,只在2345级里会自启动,启动优先级是10,关闭优先级是90。所以,如果要设置自己脚本自动启动,那么也需要有这一行。

    设置自动启动:chkconfig --add <文件名>

    然后在/etc/rc.d/rc5.d中可以看到我脚本的链接。

     ----------------------------------------------------------------分---------------------------------------------------------------------------割---------------------------------------------------------------------------------------线--------------------------------------------------------------------------------

    如何将start.sh stop.sh restar.sh启动、关闭、重启放到一个文件内制作成自启服务

    #!/bin/bash

    cd "/usr/local/proxy-server-0.1/bin"

    case "$1" in

    start)
    ./startup.sh
    ;;
    stop)
    ./stop.sh
    ;;
    restart)
    ./stop.sh
    ./startup.sh
    ;;
    *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
    esac

    1、创建文本

    vim /etc/init.d/proxyserver

    2、将以上内容复制粘贴到该文本内(几个修改格式),记得修改(cd "路径")我的start.sh 和stop.sh就在(/usr/local/proxy-server-0.1/bin)这个路径

    3、保存文本,赋予可执行权限

    chmod +x proxyserver

    到这里就可以使用,如果执行时出现错误,除了检查路径,名称,也有可能是格式不正确,与截图保持一致

    service proxyserver stop  #停止程序

    service proxyserver start  #开启程序

    如何配置开机自启,继续往后走

    二、把启动脚本设置为启动项

    1、查看当前系统启动级别:sudo runlevel 

    2、进入对应的系统启动级别文件夹,我的是rc5.d,建立软链接,链接到/etc/init.d/下的<文件名>

      1. cd /etc/rc5.d/
      2. sudo ln -vsf /etc/init.d/proxyserver  S98proxyserver
      3. ln -vsf(-v 显示链接过程 -s 软链接 -f 强制链接) 链接的文件位置 自己取得软连接名

    说明一下:命名规则是有规定的,开头必须大写S,后面跟的数字98,是你设定的启动序号,即优先级,后面名字无限定。

     3:看一下是否有这链接:

    ls -alh | grep S98proxyserver

    三、将自启命令写到脚本内(具体的文件名称根据自己实情操作)

    #!/bin/bash
    #chkconfig:  2345 81 96
    #description: Starttomcat

    第一行,告诉系统使用的shell,所有的shell脚本都是这样。
    第二行,chkconfig后面有三个参数2345,81和96告诉chkconfig程序,需要在/etc/rc.d/rc2.d~rc5.d目录下,创建名字为 S81tomcatstart的文件连接,连接到/etc/rc.d/init.d目录下的的tomcatstart脚本。第一个字符是S,系统在启动的时候,运行脚本tomcatstart,就会添加一个start参数,告诉脚本,现在是启动模式。
    同时在/etc/rc.d/rc0.d和/etc/rc.d/rc6.d目录下,创建名字为K96tomcatstart的 文件连接,第一个字符为K,在关闭系统的时候,会运行tomcatstart,添加一个stop参数,告诉脚本,现在是关闭模式。
    注意上面的三行中:第二、第三行是必须的,否则在运行chkconfig --add tomcatstart时,会报错。

     

     

    添加服务前,可以查看这个内容《服务不支持 chkconfig 的解决办法

    1、添加服务(什么也不展示表示成功,如果没成功从第二开始看,缺少哪一步)

    chkconfig --add proxyclient

    2、显示服务列表

    chkconfig --list

     

    ▲:如果看到mysql的服务如上图所示2,3,4,5都是开的话则成功,默认级别是2345

    如果是关,则键入命令开启

    chkconfig --level 2345 proxyswevwe on

    3、重启服务器

    reboot

    命令说明:

    --add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
    --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
    --level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。

    原文地址:http://blog.51cto.com/zhengdzy/2108879

    https://blog.csdn.net/m0_37673307/article/details/81806962

  • 相关阅读:
    668. Kth Smallest Number in Multiplication Table
    658. Find K Closest Elements
    483. Smallest Good Base
    475. Heaters
    454. 4Sum II
    441. Arranging Coins
    436. Find Right Interval
    410. Split Array Largest Sum
    392. Is Subsequence
    378. Kth Smallest Element in a Sorted Matrix
  • 原文地址:https://www.cnblogs.com/wei9593/p/10136024.html
Copyright © 2011-2022 走看看