本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下
2 E4 S; V. T r6 d5 h4 { 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务# `% e0 G2 W9 L0 ?
主要用三种方式进行这一操作:
2 e: D' [" s( J$ @ p ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)( L4 [6 }& q3 `/ Z& e
chkonfig 命令行运行级别设置5 X! \1 Z7 _' i0 O
ntsysv 伪图形运行级别设置. @. l h3 O8 u$ z6 s$ E4 h9 y$ I! T
注意:, _" E/ }; r; w: V' W
1.这三种方式主要用于以redhat为基础的发行版3 n8 j) i; T" a) f1 V9 P- G
2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验
. ?' C8 y8 {/ c4 x9 Y 第一种方式:ln -s 建立启动软连接
! N7 |( d3 N9 V: v9 x 在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
3 _- L9 b- |0 z 
}- }. R4 a* q Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策& ^ h$ g3 ?& G0 I$ V: \) g
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务2 Z1 \( O) A$ g% n, e3 H* w
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务
4 w$ D/ a, Y9 P d$ u0 b K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行
1 e0 [/ y$ a l# U8 w8 i4 U ! Y# r5 b% ~, E3 Z0 U! c4 z$ R) e
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可- r" ^0 f$ ^3 i/ n1 G$ I6 l! y
[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
2 d( Y* P, X& R; X: U 此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动* B6 U0 j7 q6 H
如果需要在多个运行级别下设置自启动,则需建立多个软链接3 f% A' X5 m0 f
这种方式比较繁琐,适用于自定义的服务脚本
/ O3 a5 K! C9 `# [& v 如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式; R4 B2 a5 R$ n( U `, l
第二种方式:chkconfig! @8 ~3 b$ h. G
5 e1 {8 b' }$ ^ f
如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off
! \& L" v( P1 l' u5 h/ v* [0 \0 d 在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
( g( A! z9 d+ C! z0 A1 }3 D 
8 w- Z. I- t& p/ J" |4 t 上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
4 k2 H' e+ j5 O" z Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态7 j' Q' g" I; K. @4 j g
第三种方式:ntsysv 伪图形+ B( Y! {8 a1 }' l
ntsysv和chkconfig其实是一样的,只不过加上了图形而已
3 l* O3 }# Y* \2 m( [ 启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务5 |) S) |& N( d: C( b* \
# V% z) @( S/ {) I: R7 Y6 v
默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少
: Z7 Z2 S4 A, r# P% c( f% M1 U8 [. P 比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3% p, H' ^+ v, R/ z% V; A4 \
如果想自定义运行级别可使用ntsysv --level方式
8 }0 E1 A$ R) D$ d) f# [) U & G2 i# p& k) @, R0 J' Q
以上三种操作需要保证服务脚本文件可执行,并且要有root权限. W6 P/ x/ P, O$ S
其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务
9 b/ @; H/ K) `( y9 v. C- [ 比如ftp、samba、ssh、httpd等等+ i1 h1 u j' [+ T: M1 F
并且,要做相关设置需要弄清楚运行级别的问题" W! P; v1 v; x" ?
Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start
& z L$ o0 v3 c3 h; p7 T 实际上还可以这样,service 服务名 start
7 t1 m: |1 P& M- l' F 
' b( O" j" f4 f! m* t; _ |