本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下
6 K% [# C% R' K3 r8 n& P 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务& b. g: ]# L9 P
主要用三种方式进行这一操作:
: \& \2 q+ a9 N) i M* U" I* r ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)9 n3 [. l/ Y7 ?8 H5 ], i
chkonfig 命令行运行级别设置
- w, G9 ?. X; m- t; L+ Z9 h1 S ntsysv 伪图形运行级别设置
# m+ p# |! ?4 r 注意:
5 _' p2 C) j5 J0 g 1.这三种方式主要用于以redhat为基础的发行版
. ?: ^ `3 i9 C) y9 ?3 W# a 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验4 n! _- W, `0 P ~3 P3 E4 u
第一种方式:ln -s 建立启动软连接) o* M& ]/ q6 l: i9 L1 d# b9 v/ X
在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
! k1 Q, `6 r/ e7 o9 B6 \ ; R; \! w; \, q* r
Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策, p( O% c" ^( b
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务5 j1 z4 m7 f9 m# e. H: s+ e
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务. L- Q3 |+ n3 I* L
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行
# j, H/ `- P, U' x1 v/ f$ v3 ~% j - W y7 m0 o8 k( Y
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
' T, w& Q2 D% I [# ?" s [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
% z" N3 v6 U& q5 M w 此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动
" r4 j5 X( g) C9 M( e# k3 t 如果需要在多个运行级别下设置自启动,则需建立多个软链接
5 h! @$ l. [% a* u3 J 这种方式比较繁琐,适用于自定义的服务脚本
6 M: I: |% l5 A* r% {) S' h 如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
9 p, J2 k. o- t, M 第二种方式:chkconfig( y& c0 F' i. o# v7 Y
7 h$ z3 Z( O) G% ~5 z/ R* [* M0 x( A
如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off1 X5 U! c }8 @; C. }; l* W
在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
$ w4 Z' E) N) V& D- f 
& L3 u* I( h; B' _ 上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
: `$ y' ]) V, t# l' m Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态
' U5 L' n) a& {( Y: E2 U 第三种方式:ntsysv 伪图形
/ p) g7 R! t2 V+ I' n+ A g ntsysv和chkconfig其实是一样的,只不过加上了图形而已
/ A5 N" K. w1 P% S) h- T' a 启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
! R3 D4 Y6 p+ W9 |& j: H! Z' y 
9 n. x5 M2 O4 j% { 默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少6 ]; z" e' m' a: S2 W$ g- F
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3* ^+ j8 ~+ t/ q# f. e# H( S$ @
如果想自定义运行级别可使用ntsysv --level方式
+ g! s2 N: @9 y, U+ t 
$ Z. f" {+ l1 C+ t0 z 以上三种操作需要保证服务脚本文件可执行,并且要有root权限+ r( D- M4 p" X1 y
其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务
$ Y0 x# }# S* M" U' W" s 比如ftp、samba、ssh、httpd等等
/ T7 m" i1 k3 M% }7 l4 f2 d! |+ W 并且,要做相关设置需要弄清楚运行级别的问题3 `9 P. } e0 q
Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start
. a( t j% [: \: z% e7 ^ 实际上还可以这样,service 服务名 start$ X6 N- d7 H. E; t+ ]. d

) H w1 h- i+ k; ~ |