本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下9 b' L6 r0 h! R q. X4 o
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务8 U8 V' e: R, F! i/ k1 Z
主要用三种方式进行这一操作:% Q9 |/ w, P e5 W# T( g4 T
ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)
& y/ C7 U! e3 Z chkonfig 命令行运行级别设置
$ N5 Z7 b, e# `& j1 v ntsysv 伪图形运行级别设置
: M' W8 g4 Q& f# U4 x8 _8 I 注意:+ _# A- o8 y$ [. X) h; Z- c& `
1.这三种方式主要用于以redhat为基础的发行版* k2 [1 g, h+ p8 N
2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验; l, P* q" E( ~1 ` e( p
第一种方式:ln -s 建立启动软连接, ?5 W0 C$ N- \/ W2 M) L
在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
6 U9 Z) G0 u- n* y/ e* b h; O 
Y$ ?! K8 p3 D9 G4 y; }8 o6 K$ ^& v Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策7 o" ~( I" I- Y
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务$ v) e, \: X' d6 y
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务3 L1 J( \, C4 |) B* A) Z# @- b
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行; l" e$ I. V9 k u( Q! ]1 u
0 D8 m3 a6 ?4 e: e: r
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
# S( v& H; a/ }- |& T. I* K [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh3 _6 H8 m9 E1 {4 _
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动4 i; U9 ?/ R2 f) n. J
如果需要在多个运行级别下设置自启动,则需建立多个软链接4 _- I w' V4 k* C+ K! S8 X
这种方式比较繁琐,适用于自定义的服务脚本 v' i8 L3 B6 W6 H% }: {* N
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
; S% Z( H4 A Z 第二种方式:chkconfig7 {# d; P, N3 E9 G8 o
/ Y" e: E3 B$ n- `
如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off, R6 A0 x3 A) M$ m& A% g- F0 p( F
在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
, x, |( M1 g% g( t ! j2 t3 D. V; \: j& t
上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
+ V' x0 e5 G) _2 ?9 L1 p Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态7 K# G9 q7 X, B; p" h4 M6 }$ D# k6 g
第三种方式:ntsysv 伪图形
6 Z% W1 H3 O; A' ?7 U: Z ntsysv和chkconfig其实是一样的,只不过加上了图形而已 h# O, z/ |* v8 F
启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
' |: W" @. w+ H; G/ O. ^ O$ r/ d/ V. i' u
默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少# U/ ?- o1 F; y* C- [( ]) A
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3
9 {, P/ R8 U- r4 a. b8 L1 r8 Y 如果想自定义运行级别可使用ntsysv --level方式
- e3 b- c2 u& N2 U, V: ~# k 
* }: C9 f S8 K% g$ Q% H. U 以上三种操作需要保证服务脚本文件可执行,并且要有root权限( B" `* j! h# m5 t( ]& N- x# D
其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务( y. m1 w1 z) h% i, s% |! ]
比如ftp、samba、ssh、httpd等等# D0 a8 [; K& ?3 d+ @
并且,要做相关设置需要弄清楚运行级别的问题# p3 V' O% ?( ]0 k, Z
Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start
5 O9 V( L: I& f8 n 实际上还可以这样,service 服务名 start k8 j: ]5 d& [* u

7 z& e; c% Y9 ?& Y* t: c0 [ |