linux 服务 优先级,设置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代表重启)

d5b89c09bdb9be2ae59db1839870ba27.png

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

7f0b3e5fa2da7f470686badd73f22d7f.png

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

2aa70e2ccf096375d5b45bb5436afb90.png

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

例如,我们看network脚本:

b2ad5458a5954ae957646a0465823ea8.png

我们可以看出,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)这个路径

b0292eda5ea38ee1dd499bf2cc059dc1.png

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

chmod +x proxyserver

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

service proxyserver stop  #停止程序

service proxyserver start  #开启程序

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

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

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

9836e11c59102807e4e950fffb4cf301.png

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

cd /etc/rc5.d/

sudo ln -vsf /etc/init.d/proxyserver  S98proxyserver

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时,会报错。

1a0bc5c4d5fdff72cd9e3f4045ea280e.png

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

chkconfig --add proxyclient

2、显示服务列表

chkconfig --list

87344e843411f12a6843fbf8e0367aa0.png

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

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

chkconfig --level 2345 proxyswevwe on

3、重启服务器

reboot

命令说明:

--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;

--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;

--level:指定读系统服务要在哪一个执行等级中开启或关毕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值