本篇文章小编为大家介绍,在linux 自启动服务的三种设置方式,需要的朋友可以参考一下; v+ \( [/ e, ?
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务6 ~* ` q/ K5 f# G3 g
主要用三种方式进行这一操作:
) y* ~' ] z5 D% ~' K ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)* T7 W9 ?9 v6 W0 l
chkonfig 命令行运行级别设置6 t4 x0 O, W- D, ]
ntsysv 伪图形运行级别设置
Z7 H* t7 Y: h- ?6 `$ n 注意:8 d& z2 h ]' d3 L
1.这三种方式主要用于以redhat为基础的发行版
1 L4 T( j' b9 s6 R6 h, ? 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验0 K, l& S7 j" p( T! x* `# v) ~
第一种方式:ln -s 建立启动软连接, J) Y/ [1 n6 s# S+ {
在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录 N$ G$ d# n) o0 Z
' o5 i+ ?5 C) v b8 K
Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策
5 d7 F, e) D4 m2 H, { 这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务
/ P7 U/ H+ s" ?- h: k 由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务" }$ I# N/ v; o" X4 P1 l" ?
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行: ?' Y) G6 K: c, C
, D0 v/ c2 P- d' Z+ {
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
: j% B% e. I! s( @4 V0 ] [root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
* _# i6 h( S. R5 i' D0 e& b3 j 此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动
/ @& c Y) J$ I$ r" M( V' E 如果需要在多个运行级别下设置自启动,则需建立多个软链接
% z3 ] M* I: \! M7 L1 o 这种方式比较繁琐,适用于自定义的服务脚本5 Z2 q& B; N, i1 z
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式2 s6 X* @" ?4 L6 }% L7 w% Q
第二种方式:chkconfig) e8 x, G6 | @* E7 u

1 @4 _+ R+ E& Y0 ` 如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off
. E( T* j: |- N' u3 J 在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项- A+ U9 l: F* L* r+ O

1 }. W8 T7 l" c5 L( W& V 上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
$ i' z9 T9 ?6 ^' E8 B, K; a T: F Tips:--list选项可查看雨林木风系统指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态5 v8 T; Q7 U, u7 x! r
第三种方式:ntsysv 伪图形
* B6 @0 A& A6 ~% [ ntsysv和chkconfig其实是一样的,只不过加上了图形而已
! P* B q$ G: Y/ e# J0 a( \* T 启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
1 M5 _8 y6 f) w8 }# i 
: z3 H* y) u, S* {: ~9 H 默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少
8 z9 V0 R5 I% M- M' R( P4 N# f 比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3! f7 j1 a/ J9 }8 s, ?& F
如果想自定义运行级别可使用ntsysv --level方式
, D" ?; y0 a# S, U 
$ E" p% o( i4 T: g# n, O3 d 以上三种操作需要保证服务脚本文件可执行,并且要有root权限
O7 M9 H; z. g/ L5 k" W) J 其中,第一种方式多用于番茄花园自定义脚本,第二、三种多用于系统已存在的服务
! j: O$ g' k7 \0 x3 }* G; U) U) ^. Y 比如ftp、samba、ssh、httpd等等9 [+ j6 C- W* ?& ]4 Z, C- s
并且,要做相关设置需要弄清楚运行级别的问题: n" b1 c" e% d
Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start/ a) n/ u* h' f& z+ B$ \
实际上还可以这样,service 服务名 start
1 A0 }" _- g5 K! h. B 
' w, n: `2 y$ t4 E |