本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下
, w+ K+ N$ a7 x 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务" Q8 i' U2 F( Q: `. b
主要用三种方式进行这一操作:: N5 I) j& N& g/ U, C) e# c
ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)
9 q) _% r" y1 v4 E+ y. D1 N5 F chkonfig 命令行运行级别设置; l& v% q8 g7 J% N) m
ntsysv 伪图形运行级别设置
I- V( X# i9 V 注意:- L2 m* e P7 X! i" L' d& w
1.这三种方式主要用于以redhat为基础的发行版4 I" ?! A# U+ J _& }4 A/ H
2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验' F" ~' X R$ f" f8 J/ u* w
第一种方式:ln -s 建立启动软连接
5 t4 ?1 t( z) H, J* t 在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
9 V" C& x1 F0 {- b7 ^* K3 a2 O" N 7 s3 t" m. r9 p) Y
Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策
8 Z- @6 B) a4 ]) f3 { 这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务. @* o J1 P4 b* R; A% H- p
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务% A9 M$ \+ G3 ?* m( Z. ]
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行- b0 _$ Q& w) p
# @1 @# X4 O) r/ R: W1 l
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
, B1 L; T2 h2 L5 d [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh) S4 a3 R# o- |5 h
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动
% x1 [% `8 B7 K, H- M; V( u 如果需要在多个运行级别下设置自启动,则需建立多个软链接
7 d* t2 P* `1 F: W 这种方式比较繁琐,适用于自定义的服务脚本7 p8 k; E' n' G: o# U/ K
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式: Q* ]& t) f2 R) E% @( h+ N& }
第二种方式:chkconfig* ~4 e) g& r4 } s- H
( N; G: O' ]& r2 }1 \6 t1 u5 y0 g
如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off: R7 k; Z/ n. N: v, y) Z4 K' K! ?$ ~
在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
3 o( r" N# ?8 D7 F0 D$ w, u; ?4 T$ O 
) @7 U+ O& c) i3 h) Y$ \* E1 n) w5 D 上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
* p$ Q y* L. L4 D5 ~2 ^ Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态- ~( x) ~2 b' g
第三种方式:ntsysv 伪图形
7 P; o& ]5 k; f8 c& O. _ ntsysv和chkconfig其实是一样的,只不过加上了图形而已
6 [8 @7 w2 j+ |9 K 启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
" w( |. \$ \$ R, T3 T: _ 
3 Z6 F) c3 Y* l* e) O% ~) V o+ ~ 默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少
5 j" P6 N5 E# P2 \; }4 A1 l: b 比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3' x! G$ o: r6 ?6 W2 }. q: o" R
如果想自定义运行级别可使用ntsysv --level方式9 r* m& Y: P, y X- h% N; N9 H

+ f( K* |, q; H1 I7 t- q( `* w( b 以上三种操作需要保证服务脚本文件可执行,并且要有root权限, ~0 A& O7 i6 N( R4 i' a
其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务
* _; R) `- a9 H( O: t9 W7 i 比如ftp、samba、ssh、httpd等等* v6 w8 a6 f3 s8 X
并且,要做相关设置需要弄清楚运行级别的问题
7 O4 L) a& R1 y/ J$ ^ Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start# g, M% i Q+ H
实际上还可以这样,service 服务名 start
4 S$ S# P& F/ l- h ! f4 x2 n' c2 H, _$ e( C: ~
|