在某項目中,使用ubuntu系統,離線方式,需要到chkconfig,突然想到該命令與service的區別,在此一一闡述;
(1)安裝chkconfig,離線包安裝(離線包的安裝地址 http://pan.baidu.com/s/1o884uT0 密碼:11qu ),下載后離線包后,上傳至服務器指定的路徑下,再進行安裝
dpkg -i chkconfig_11.0-79.1-2_all.deb 進行安裝即可完成
#dpkg命令: package manager for Debian ,是 Debian 和基於 Debian 的系統中一個主要的包管理工具,可以用來安裝、構建、卸載、管理 deb 格式的軟件包;
使用 命令安裝軟件時,可以使用 -i 選項並指定 deb 安裝包的路徑。和 Ubuntu 下的另一個包管理工具 apt-get(Advanced Package Tool)有所不同。
apt-get 命令並不直接操作 deb 安裝包文件,而是從 /etc/apt/sources.list 配置文件中定義的軟件鏡像源里下載軟件包並安裝,使用時也只需指定軟件的名稱(或者也可以附加上版本號)
(2)service服務
service的執行腳本放在 /etc/service下,凡是能使用 service 服務 動作 的指令都可以在/etc/init.d目錄下執行
例如: /etc/init.d/sshd start,使用 service 服務 動作 例子 service papche2 restart,其實是執行了一個腳本/etc/init.d apache2 restatr
(3)chkconfig主要用來更新(啟動或停止)和查詢系統服務的運行級信息。
謹記chkconfig不是立即自動禁止或激活一個服務,它只是簡單的改變了符號連接
linux服務器啟動的時候分為6個等級
0.表示關機
1.單用戶模式
2.無網絡的多用戶模式
3.有網絡的多用戶模式
4.不可用
5.圖形化界面
6.重新啟動
具體和默認的啟動等級可以在 /etc/inittab目錄下查看
一般自用的linux默認登陸等級為5 公司為3
管理各個登陸級別下使用服務的權限可以用 chkconfig 命令
查看各個級別下服務開機自啟動情況 可以使用 chkconfig --list
增加一個自啟動服務 chkconfig --add 服務名 例如 chkconfig --add sshd
減少一個自啟動服務 chkconfig --add 服務名 例如 chkconfig --del sshd
需要注意的是:這樣添加和刪除開機自啟動服務,是將服務加入開啟自啟動列表里
如果刪除了,就是說6個運行級別都無法開機自啟動該服務
如果增加一個服務,6個級別的開啟關閉狀況,都是按照原來的配置
例如: sshd 1開 2關 3開 4開 5開 6關 (刪除之后整個ssh服務全部從開機自動項內移除,相當於6個級別全部關閉,但是如果又將該服務添加上,還是按照原來的配置執行操作:sshd 1開 2關 3開 4開 5開 6關(並非全開或全關))
如果想單獨關閉/打開一個服務可以使用如下命令:
chkconfig --level 等級 服務 off/on
如果使用chkconfig --add httpd
不管用的話
可以在httpd文件里上面注釋行寫上
#chkconfig: 2345 10 90
#description: Activates/Deactivates Apache Web Server
然后
cp /etc/init.d/httpd /etc/rc.d/rc0.d
cp /etc/init.d/httpd /etc/rc.d/rc1.d
cp /etc/init.d/httpd /etc/rc.d/rc2.d
cp /etc/init.d/httpd /etc/rc.d/rc3.d
cp /etc/init.d/httpd /etc/rc.d/rc4.d
cp /etc/init.d/httpd /etc/rc.d/rc5.d
cp /etc/init.d/httpd /etc/rc.d/rc6.d
chkconfig和service命令的區別
chkconfig是當前不生效,Linux重啟之后才生效的命令(開機自啟動項)
service是即使生效,重啟后失效的命令