本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下
B7 m: T6 u4 P' X, U 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务
6 B5 z4 G& Y" T2 t 主要用三种方式进行这一操作:
2 f3 i& ?( ] v7 z0 A+ t7 z- h ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)6 M6 m( |6 [' h x+ R3 {! Z
chkonfig 命令行运行级别设置
/ y& T5 L; o2 I8 @* ^: E7 u3 y# h ntsysv 伪图形运行级别设置" ~' r. p( S" ~! d3 B0 X3 M1 [
注意:2 Q9 N6 ^, I: f- H$ ]
1.这三种方式主要用于以redhat为基础的发行版+ \+ Q8 K- ~5 M- G
2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验
- o/ s* W- u. _# I% Q1 v 第一种方式:ln -s 建立启动软连接
1 G. p x" I$ O8 Y6 M/ L9 K 在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录- V% J) z5 j. X& _! P# o1 _
) u" [* r3 F1 z; C: C! R# v. N
Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策* |5 a8 D. |0 i# U w% j
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务" K: u# E) A$ h# b3 y& Y2 v0 e# I- B
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务% ?. s6 \) `% ^3 s/ F/ n( _# H
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行9 c. ?3 X0 @/ K2 G+ J6 \
% X9 `1 A6 H; Y1 R
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
: }( n9 i3 l. F; O3 c [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh7 w d" x( X: d; T, R% g" }
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动
z1 L7 x2 h( U7 |0 p* H! m: l 如果需要在多个运行级别下设置自启动,则需建立多个软链接: u; q$ r8 N' a5 W# |* @) z( R
这种方式比较繁琐,适用于自定义的服务脚本: s* X5 U1 e; P$ k) R4 k- v
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
% N. ?4 H2 F* R7 Z% A7 i+ G 第二种方式:chkconfig
7 G+ v9 T9 m+ [7 _/ s% j- G 
$ ]% s3 J2 m' m& y/ K V1 M 如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off
5 N% H5 f& x; R5 w 在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项. F9 l# R6 v1 z1 E8 R$ |
; F% L# K4 |) R. J6 z* F
上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别0 z! r w- d4 L$ X2 a0 R- \
Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态
1 e' d6 |6 K' R* L7 r 第三种方式:ntsysv 伪图形
: @/ \$ ?7 x+ c' p( L3 P% A8 [. H ntsysv和chkconfig其实是一样的,只不过加上了图形而已4 [+ H+ T/ H% n: H" T) w' s5 f. p
启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务7 K2 M2 y1 v) X% @- F

- Z7 U" ]+ A5 g) a) N/ I( } 默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少 @: _% w2 _! g! Z+ g1 M( S" @% c
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3
1 D( Z- r* [0 Q: W3 y0 J 如果想自定义运行级别可使用ntsysv --level方式
+ v. c( {+ w% {# N/ U* k 
" { o# f6 d1 P: F7 ^* F 以上三种操作需要保证服务脚本文件可执行,并且要有root权限
3 |4 R9 d6 k8 `, k% o, z/ u 其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务
: }" S! v6 J) o6 I0 D+ p7 ` 比如ftp、samba、ssh、httpd等等; d& U- m; m2 e7 O" c- n& k0 u7 E
并且,要做相关设置需要弄清楚运行级别的问题
F% G; I9 L! u: B Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start
* T) ]* C ]% d; X, n 实际上还可以这样,service 服务名 start
+ s5 z+ I( L6 C, M) O' {0 W2 r ) \( X/ A9 X# c$ \, w6 K# c/ {2 [
|