本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下
4 l2 b3 r# S4 S' a8 F 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务
. u& M! G1 Y0 A 主要用三种方式进行这一操作:: C3 W- K3 z) F7 k
ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)
% P m- P n' z, X1 r+ ]! l _ chkonfig 命令行运行级别设置" u# p- M4 h3 s3 H
ntsysv 伪图形运行级别设置/ c/ D" L i+ u, x* T
注意:! r3 {" [6 c' v
1.这三种方式主要用于以redhat为基础的发行版
/ }* r- H3 B8 c& g 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验
7 e) _" z4 B' _( Z 第一种方式:ln -s 建立启动软连接
# q' L0 z5 ^2 h: H( x5 T) @) o$ v 在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
' d7 K9 `) }# q" G 
2 o+ ?( r( x! M Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策& k: `( p" }+ l
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务1 I% q, `% i8 a) {
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务
, }4 D( ^! n$ n6 J! D K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行1 K! L4 Y; @: {5 @0 v2 K

9 ^- q- K4 _6 D: k 因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
1 ]* } k! X6 f5 k' K [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh3 }" ^9 [5 a" x2 h
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动* e6 M' \: J' Q4 }3 Y, e
如果需要在多个运行级别下设置自启动,则需建立多个软链接1 k& }9 M: j9 F; I2 ~0 q% v+ ]
这种方式比较繁琐,适用于自定义的服务脚本
2 I5 A. C6 u$ B 如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
$ R/ n7 ?5 V/ f) j8 `$ o 第二种方式:chkconfig- \' m1 H2 Y5 Y+ F! g

" J9 ~; R! ?" ?# T3 V+ Z% p9 q 如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off
' B; x- r& \& b 在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
) m5 K8 ^, w% ]0 m% O- q; | 3 d" n. A, J* |9 z' a8 {0 l& S
上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
3 v4 @( x. g& |- h! W% Y- \. a( a Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态. N, E! H {- _0 |: \ n
第三种方式:ntsysv 伪图形5 O4 D6 ~/ e* Q: `9 |: {
ntsysv和chkconfig其实是一样的,只不过加上了图形而已: Q7 C! c+ c* D- i* l/ H; n
启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
: |4 b$ o- i Q. i F 
; s# @' x, n. U% c# ]2 ~! f 默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少3 `# Y" C- w$ o2 W
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3
- M9 ]) b$ I- x3 C# k6 h 如果想自定义运行级别可使用ntsysv --level方式5 V# S( o/ F% g9 ] u% Z+ h

! h2 @' h6 m& l" e' ~/ s4 ? 以上三种操作需要保证服务脚本文件可执行,并且要有root权限
0 Q9 w2 b4 h0 D: M 其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务" y2 t3 {1 {, b" b6 K
比如ftp、samba、ssh、httpd等等
4 b7 `) s# K9 |* x5 M2 u 并且,要做相关设置需要弄清楚运行级别的问题
8 c7 Y$ J: e# s& X8 p$ w/ [$ X Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start
; P: d. {/ R* F 实际上还可以这样,service 服务名 start
8 a6 Y* ?( ]5 k- Y+ d 3 I- Q4 S9 O. A$ x5 d8 n& i5 d. f2 s
|