有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服務
主要用三種方式進行這一操作:
ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服務的软链接(*代表0~6七个运行级别之一)
chkonfig 命令行运行级别设置
ntsysv 伪图形运行级别设置
注意:1.這三種方式主要用于以redhat爲基礎的發行版
2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验
在Linux中有7種運行級別(可在/etc/inittab文件設置),每種運行級別分別對應著/etc/rc.d/rc[0~6].d這7個目錄
Tips:/etc/rc[0~6].d其實是/etc/rc.d/rc[0~6].d的軟連接,主要是爲了保持和Unix的兼容性才做此策
這7個目錄中,每个目录分别存放着对应运行级别加载时需要关闭或啓動的服務
由詳細信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服務
K開頭的腳本文件代表運行級別加載時需要關閉的,S開頭的代表需要執行
因此,当我们需要開機啓動自己的脚本时,只需要将可执行脚本丢在/etc/init.d目錄下,然後在/etc/rc.d/rc*.d中建立軟鏈接即可
[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此处sshd是具体服務的脚本文件,S100ssh是其软链接,S开头代表加载时自啓動
如果需要在多個運行級別下設置自啓動,則需建立多個軟鏈接
这种方式比较繁琐,适用于自定义的服務脚本
如果系统中已经存在某些服務(比如安装apache时就会有httpd服務项),可以使用下面的两种方式
如果需要自啓動某些服務,只需使用chkconfig 服務名 on即可,若想關閉,將on改爲off
在默認情況下,chkconfig會自啓動2345這四個級別,如果想自定義可以加上--level選項
上面我们先将sshd服務的所有啓動级别关闭,然后使用--level選項啓動自定义级别
Tips:--list選項可查看指定服務的啓動状态,chkconfig不带任何選項则查看所有服務状态
ntsysv和chkconfig其實是一样的,只不过加上了图形而已
啓動ntsysv有兩種方式,一是直接在命令行中輸入ntsysv,二是使用setup命令,然后选择系统服務
默認情況下,當前運行級別爲多少,在ntsysv中设置的啓動服務的级别便是多少
比如,我当前的运行级别是3,那么我在伪图形界面中选择啓動服務后,它的运行级别也会是3
如果想自定義運行級別可使用ntsysv --level方式
以上三种操作需要保证服務脚本文件可执行,并且要有root权限
其中,第一种方式多用于自定义脚本,第二、三种多用于系统已存在的服務
比如ftp、samba、ssh、httpd等等
並且,要做相關設置需要弄清楚運行級別的問題
Tips:如果想手动啓動某服務,传统的方式是 /etc/init.d服務名 start
实际上还可以这样,service 服務名 start
本文出自 “左羅CTO” 博客,请务必保留此出处http://zorro.blog.51cto.com/2139862/1410056
Linux中設置服務自啓動的三種方式,布布扣,bubuko.com
原文地址:http://zorro.blog.51cto.com/2139862/1410056