本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下
( p$ Z7 Q: f' n+ Q7 j3 i* @ 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务+ A% @2 K: K$ H2 W$ c
主要用三种方式进行这一操作:# U1 P2 t- u0 z5 ]) b
ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)$ j3 w. ^- ^+ b3 } A
chkonfig 命令行运行级别设置
0 W6 y2 n0 Z0 g0 H ntsysv 伪图形运行级别设置3 ?0 V5 m3 I0 w1 ]9 j! |
注意:
( Z8 Z4 w% E" z* L4 k/ b0 } 1.这三种方式主要用于以redhat为基础的发行版
( h% L' Z" T" N' \0 S1 v: C 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验% H% \% h U3 e+ K( j: S' h4 _( A
第一种方式:ln -s 建立启动软连接2 h g9 U% d6 Y9 ~$ X
在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
8 U% p, A9 M# l * | E8 V# q3 o9 H5 D
Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策
: m3 l2 w [% ]$ _; y" N 这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务- l4 z( J3 | e# l- e( @3 N
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务0 a- D4 l% h) n7 C5 z/ v+ i0 f2 x
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行* t0 v, K- V5 }6 `4 M
; q$ O1 d( r: E x' p4 f
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可: ]& i+ J; F' ^5 b& [+ ~+ b# n
[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
5 _3 q3 M% i" C& y' b7 d 此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动' u5 H- h `- i
如果需要在多个运行级别下设置自启动,则需建立多个软链接
N( c6 [/ j& w. Y* ]& t7 @/ h 这种方式比较繁琐,适用于自定义的服务脚本5 C1 v% u4 j5 T5 X
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
! N6 n: f) D0 z7 k. o7 Z( N5 N 第二种方式:chkconfig
3 q5 N. T' c% D7 l, B* D+ B! | 
7 K: U8 m; e4 \* t0 e" W* x 如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off
; Z$ I4 P. n: w" N% O$ E B5 Z( z 在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
6 H. o1 E3 b1 d9 A6 D Q- ?, d/ P 
3 {; z1 D3 |0 E& p" Z- I 上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别* r0 O8 ? ]7 Z& Q% K
Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态
9 F4 _& T6 e; L" P; M 第三种方式:ntsysv 伪图形
, K/ Y( }: l `0 T ntsysv和chkconfig其实是一样的,只不过加上了图形而已
, U/ m9 {2 e, C+ a' d" F2 E 启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
5 e2 f5 c: Y0 j6 e! P) K" \ 
7 O6 `. S: f: k* B 默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少
$ \: R+ L1 t0 g1 n: Y& e7 s0 E 比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3: e% m3 b$ N" F8 o
如果想自定义运行级别可使用ntsysv --level方式
# N5 z- X, e: n 1 U7 ^# A- X! x& o; O
以上三种操作需要保证服务脚本文件可执行,并且要有root权限
1 } i) I: Z$ ]# i9 h5 A 其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务
+ S% Z" ]1 }1 l6 O# j' S 比如ftp、samba、ssh、httpd等等2 M! h F& p( E, X* W
并且,要做相关设置需要弄清楚运行级别的问题+ M) `+ s' ~. H, [$ o( K8 L5 X
Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start) |. U/ ^- I) ?* [1 ^0 W
实际上还可以这样,service 服务名 start
/ M2 R9 q8 h7 A4 N4 O: y 
) Z: E, R4 X- w' m( z |