本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下
; d: M6 e2 ]- Z6 f/ c ^ 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务
: ^) E) f/ ]' ?9 t; m* h 主要用三种方式进行这一操作:# a4 n5 z. Z7 C$ u, r( D
ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)
' ^% T; c( S+ L chkonfig 命令行运行级别设置
+ ?9 d& T! ]2 _- t9 h8 z- r ntsysv 伪图形运行级别设置0 W7 ^( z( h, f! w6 p$ V5 ~" X! P
注意:
5 U5 G& ~) k/ }# K8 \& n6 A* ] 1.这三种方式主要用于以redhat为基础的发行版3 w* p! r3 t$ o P( E
2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验
) F. n" W4 f( Z& r8 F8 Z 第一种方式:ln -s 建立启动软连接4 j: w0 K/ V- n$ Z3 v
在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录 Z! i) l; x! G3 ]3 V! J# h

8 L1 U: Z+ o5 S Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策! T/ d8 y2 O3 s( \) b
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务 r8 A: }: b* V) D. \/ g3 s
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务7 O* M, c- ^. h- n. C! F' a1 Z' l$ K
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行) Q& B, Y7 }! s! s L
9 @4 V8 x+ t: B% [
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
3 ~' f3 K- g1 P, a [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
* D8 _* a8 c F9 r0 G$ r7 I/ \ 此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动; k- B0 r7 C3 C* c7 |3 g
如果需要在多个运行级别下设置自启动,则需建立多个软链接4 R2 k3 z% l3 P2 A$ i0 E, f" b
这种方式比较繁琐,适用于自定义的服务脚本 f# V" p% D+ }- r |
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
9 T, @/ E0 g- N& o/ l' v 第二种方式:chkconfig% h6 T2 |* R7 y4 v) Q/ }* ?

Z$ I4 Z8 o+ O; i( Z 如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off2 _7 |$ v- k; E* p5 D3 f! @
在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项% x- y& {7 x, h4 J; y. Y8 L; R4 s. u' e _
9 |/ C2 x% n$ B1 m; G' H
上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
' U3 V5 k) m1 H* U3 C# d Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态' N, h4 t' b9 v5 U
第三种方式:ntsysv 伪图形
0 `% X# l# q$ T+ A) v ntsysv和chkconfig其实是一样的,只不过加上了图形而已
( c: p- J6 V1 Y b& i0 A$ F4 h8 k$ w 启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
: f9 @1 C! {& b$ ?" L7 }3 p " K) V' W+ H1 F# b' ~) v
默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少. x; F/ U5 i$ `. J/ v
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3, ]1 Q: F; I, l/ S6 L
如果想自定义运行级别可使用ntsysv --level方式
/ [+ z6 o+ s! c- R n9 g $ i- N7 t) m/ Q& B5 W' V$ v
以上三种操作需要保证服务脚本文件可执行,并且要有root权限
9 {: V+ r& j8 x4 }& ~ 其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务. k* ]: {4 N( Z" j7 @* P
比如ftp、samba、ssh、httpd等等% `' G9 O* N+ A. y6 F, }
并且,要做相关设置需要弄清楚运行级别的问题
1 b+ N, @5 q1 L3 W+ z Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start% S( G1 v5 w. }5 W4 G
实际上还可以这样,service 服务名 start7 Z) M7 v! F/ `
% f7 n3 d8 o$ u/ n; q" i
|