日期:2014-05-16  浏览次数:20970 次

linux设置开机自启动的服务
我们想在linux下把tomcat、apache、mysql等应用设置为开机自启动的服务,类似于windows下面的服务设置,查找了网上的一些方法,都比较繁琐,在陈良的指点下,其实只要使用以下几步就可以完成开机自启动的服务,假设要把IDS(IDS部署在tomcat上,安装路径为/opt/TRS/TRSIDS2.1)设置为自启动,步骤如下:

1. 先在/etc/init.d下建立/opt/TRS/TRSIDS2.1/bin/catalina.sh的关联idsService
#cd /etc/init.d/
#ln -s /opt/TRS/TRSIDS2.1/bin/catalina.sh  idsService
2. linux下的运行级别有以下几种:
# 0 - 停机(千万不要把initdefault设置为0 )
# 1 - 单用户模式
# 2 - 多用户,但是没有NFS
# 3 - 完全多用户模式
# 4 - 没有用到
# 5 - X11
# 6 - 重新启动(千万不要把initdefault设置为6)
  以上启动模式分别对应着/etc/rcX.d/ X代表运行级别,由于IDS所在系统的运行级别为3,也就是我们常见的标准运行级别,有些情况下可能是启动后运行在图形界面,则级别为5。

一般我们对3和5两种级别进行设置就可以了,只设置一个级别不起作用,奇怪,设置方法如下(在原来基础上重新调整过):

#cd /etc/rc3.d
#ln -s /etc/init.d/idsServic   S75idsService
#cd /etc/rc5.d
#ln -s /etc/init.d/idsService S75idsService
如果要在系统关机或重启后执行应用的关闭命令,则还需要作以下配置
#cd /etc/rc0.d
#ln -s /etc/init.d/idsService k05idsService
#cd /etc/rc6.d
#ln -s /etc/init.d/idsService K05idsService
3. 重新启动计算机即可,其他服务设置方法均与此类似。
下面分别对付总提出的问题做一个答复,边找资料边学习:



1,在/etc/rc3.d目录下,有以字母S和K开始的两类连接文件,分别是什么意思。我猜测S开始的是启动时执行的,

   K开始的是关机时执行的,可是不敢确认。

 

A:S 代表start, K 代表kill,付总的猜测是正确的,当系统启动时,总是查找以S开头的关联,然后按照数字的大小顺序执行,

数字小的先被执行。



2,在字母S和K的后面,会紧跟两个数字,这个从00到99的数字是什么含义。猜测是代表执行的顺序,数字小的先执行,也不确认。

  

A:确实代表一个顺序,按从小到大的顺序执行,但是对于S50command1和S50Command2,到底是哪一个先被执行呢?大家找答案吧!



3,无论是S还是K开始,好像都是连接到位于/etc/init.d下的同一个脚本文件,那这个脚本文件是如何区分是要执行启动命令还是停止命令。猜测凡以S开始的文件,系统在调用时会附加参数start,凡以K开始的文件,系统在调用时会附加参数stop。也是不敢确认。

  

A:是这样的,比如在/etc/rc3.d/S75idsService, 则系统启动时,根据S75idsService,查找到/etc/init.d/idsService, 然后调用 ./idsService start命令。



4,在linux下执行setup命令,还是使用linux的桌面下使用图形界面设置服务的启动状态,都会有关于这个服务的介绍,系统是怎么找到个介绍的。好像是在/etc/init.d下的脚本文件的头部注释里,有一些格式要求。



A:在linux图形界面下,也可以通过系统的一个工具完成类似windows那样的服务添加,但有些应用服务可能没有类似于tomcat那样 catalina.sh的脚本,可以直接使用catalina.sh start或stop来启动和关闭。可能只有两个独立的命令,比如startApp.sh, stopApp.sh,那么我们需要自己写这个脚本了,当初就是按照这种方式去编写启动脚本的,不过没有成功,最后才采用以上的方法。