chkconfig命令

weixin_33941350發表於2014-07-15

Linux下chkconfig命令詳解

chkconfig命令主要用來更新(啟動或停止)和查詢系統服務的執行級資訊。謹記chkconfig不是立即自動禁止或啟用一個服務,它只是簡單的改變了符號連線。

使用語法:
chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset]

chkconfig在沒有引數執行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前執行級啟動。如果是,返回true,否則返回false。如果在服務名後面指定了on,off或者reset,那麼chkconfi 會改變指定服務的啟動資訊。on和off分別指服務被啟動和停止,reset指重置服務的啟動資訊,無論有問題的初始化指令碼指定了什麼。on和off開關,系統預設只對執行級3,4,5有效,但是reset可以對所有執行級有效。

引數用法:
   --add  增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述檔案內增加相關資料。
   --del  刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述檔案內刪除相關資料。
   --level<等級代號>  指定讀系統服務要在哪一個執行等級中開啟或關畢。
      等級0表示:表示關機
      等級1表示:單使用者模式
      等級2表示:無網路連線的多使用者命令列模式
      等級3表示:有網路連線的多使用者命令列模式
      等級4表示:不可用
      等級5表示:帶圖形介面的多使用者模式
      等級6表示:重新啟動
      需要說明的是,level選項可以指定要檢視的執行級而不一定是當前執行級。對於每個執行級,只能有一個啟動指令碼或者停止指令碼。當切換執行級時,init不會重新啟動已經啟動的服務,也不會再次去停止已經停止的服務。

    chkconfig --list [name]:顯示所有執行級系統服務的執行狀態資訊(on或off)。如果指定了name,那麼只顯示指定的服務在不同執行級的狀態。
    chkconfig --add name:增加一項新的服務。chkconfig確保每個執行級有一項啟動(S)或者殺死(K)入口。如有缺少,則會從預設的init指令碼自動建立。
    chkconfig --del name:刪除服務,並把相關符號連線從/etc/rc[0-6].d刪除。
    chkconfig [--level levels] name:設定某一服務在指定的執行級是被啟動,停止還是重置。

執行級檔案:
每個被chkconfig管理的服務需要在對應的init.d下的指令碼加上兩行或者更多行的註釋。第一行告訴chkconfig預設啟動的執行級以及啟動和停止的優先順序。如果某服務預設不在任何執行級啟動,那麼使用 - 代替執行級。第二行對服務進行描述,可以用\ 跨行註釋。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.

使用範例:
chkconfig --list        #列出所有的系統服務
chkconfig --add httpd        #增加httpd服務
chkconfig --del httpd        #刪除httpd服務
chkconfig --level httpd 2345 on        #設定httpd在執行級別為2、3、4、5的情況下都是on(開啟)的狀態
chkconfig --list        #列出系統所有的服務啟動情況
chkconfig --list mysqld        #列出mysqld服務設定情況
chkconfig --level 35 mysqld on        #設定mysqld在等級3和5為開機執行服務,--level 35表示操作只在等級3和5執行,on表示啟動,off表示關閉
chkconfig mysqld on        #設定mysqld在各等級為on,“各等級”包括2、3、4、5等級

如何增加一個服務:
1.服務指令碼必須存放在/etc/ini.d/目錄下;
2.chkconfig --add servicename
    在chkconfig工具服務列表中增加此服務,此時服務會被在/etc/rc.d/rcN.d中賦予K/S入口了;
3.chkconfig --level 35 mysqld on
    修改服務的預設啟動等級。

 
 
redhat中的chkconfig
 

1. chkconfig是redhat中的服務配置工具

2. 要使不在chkconfig目錄中的服務支援該命令,需要改該服務指令碼的工具

  例如:/etc/init.d/sshd

  1.註釋中必須有這兩行 (chkconfig會檢視所有註釋行)

    # chkconfig: 2345 55 25       # description: SSH is a protocol for secure remote shell access. 描述檔案

    1.chkconfig引數1:表示在執行級別2345中預設代開 使用-表示預設關閉

    2.chkconfig引數2:S55

    3.chkconfig引數3:K45

  2. 要在服務指令碼中實現POSIX規範中的函式:start() stop()等

  3.這時可以使用 service xxxx(指令碼名)  start/stop等命令立刻啟動或關閉

3.要使該指令碼每次啟動都生效

  1.chkconfig --add xxxx註冊服務名

    1.chkconfig會根據該指令碼的資訊,自動到相應執行級rcX.d中建立連結

  2.chkconfig xxxx off 配置系統啟動時該指令碼預設關閉

  3.chkconfig xxxx on 配置系統啟動時該指令碼預設啟動

    

4.chkconfig中的特殊服務xinetd ,xinetd服務下掛載一系列服務 ,指令碼放在/etc/xinetd.d/

  1.要啟動xinetd掛在的服務

    1.chkconfig xinetd on

    2.chkconfig  xxx on

    3.service xxx start  

 

 

chkconfig命令

1.chkconfig是一個改變開機啟動項的命令,修改/etc/rc[0-6].d資料夾下的內容

2.chkconfig命令有5種不同的作用:增加新的服務、刪除服務、列印當前開啟啟動服務的資訊、修改開啟啟動服務的資訊、檢查一個指定服務的狀態

3.當chkconfig servicename時,它檢查這個服務是不是在當前的runlevel下被開啟啟動,如果是,返回true,否則false。chkconfig --level= servicename檢查服務是不是在指定的runlevel開機啟動

4.當chkconfig --list時,或者完全沒有引數即chkconfig時,會列出當前的服務和他們的配置

5.如果on、off、reset、resetpriorities引數之一被指定時(在服務名引數後面),chkconfig命名改變這個服務的開機配置。on/off使服務開機啟動/停止。reset標誌重置on/off不論在開機啟動指令碼中是什麼樣子的,resetpriorities也是,只是有優先順序

6.預設,on/off命令支隊runlevel為2,3,4,5的有影響,而reset和resetpriorities對所有runlevels都有影響。--level引數可以指定被影響的runlevel

7.對每個服務,每個runlevel都有1個start/stop指令碼。當change runlevel時,init程式不會重啟一個already-start的服務,也不會重新關閉一個already-stop的服務

 

 

 

chkconfig 檢查和設定系統的各種服務。
語法:chkconfig [--add][--del][--list][系統服務] :增、刪、查系統服務(/etc/【rc.d】/init.d/……)
       chkconfig [--level <等級代號>] [系統服務][on/off/reset]         :開啟關閉重置系統服務
 --level<等級代號> 指定讀系統服務要在哪一個執行等級中開啟或關閉。 
 level
    abrt-ccpp       0:關閉  1:關閉  2:關閉  3:啟用  4:關閉  5:啟用  6:關閉
    abrt-oops       0:關閉  1:關閉  2:關閉  3:啟用  4:關閉  5:啟用  6:關閉
    abrtd           0:關閉  1:關閉  2:關閉  3:啟用  4:關閉  5:啟用  6:關閉
    等級0表示:表示關機
  等級1表示:單使用者模式
  等級2表示:無網路連線的多使用者命令列模式
  等級3表示:有網路連線的多使用者命令列模式
  等級4表示:不可用
  等級5表示:帶圖形介面的多使用者模式
  等級6表示:重新啟動

chkconfig 沒有引數執行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前執行級啟動。
如果是,返回true,否則返回false。
如果在服務名後面指定了on,off或者reset,那麼chkconfi 會改變指定服務的啟動資訊。
on和off分別指服務被啟動和停止,reset指重置服務的啟動資訊,無論有問題的初始化指令碼指定了什麼。
on和off開關,系統預設只對執行級3,4,5有效,但是reset可以對所有執行級有效

    chkconfig svnserved on
    svnserved       0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉
    chkconfig svnserved on
    svnserved       0:關閉  1:關閉  2:關閉  3:關閉  4:關閉  5:關閉  6:關閉

 


Linux下啟動,停止apache服務

本文假設你的apahce安裝目錄為/usr/local/apache2,這些方法適合任何情況   apahce啟動命令:      /usr/local/apache2/bin/apachectl start apaceh啟動 apache停止命令      /usr/local/apache2/bin/apachectl stop   停止 apache重新啟動命令:      /usr/local/apache2/bin/apachectl restart 重啟  要在重啟 Apache 伺服器時不中斷當前的連線,則應執行: 

    /usr/local/sbin/apachectl graceful    如果apache安裝成為linux的服務的話,可以用以下命令操作:      service httpd start 啟動 

    service httpd restart 重新啟動 

    service httpd stop 停止服務

當一個人找不到出路的時候,最好的辦法就是將當前能做好的事情做到極致,做到無人能及。

 

chkconfig命令

chkconfig

功能說明:檢查,設定系統的各種服務。

語  法:chkconfig

[--add][--del][--list][系統服務]或chkconfig[--level<等級代號>][系統服務][on/off/reset]

補充說明:這是RedHat公司遵循GPL規則所開發的程式,它可查詢作業系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。

參  數:

 --add 增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述檔案內增加相關資料。

 --del 刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述檔案內刪除相關資料。

 --level<等級代號> 指定讀系統服務要在哪一個執行等級中開啟或關畢

 

1:chkconfig 命令也可以用來啟用和解除服務。chkconfig --list 命令顯示系統服務列表,以及這些服務在執行級別0到6中已被啟動(on)還是停止(off)。

chkconfig --list

chkconfig --list httpd

httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2:chkconfig 還能用來設定某一服務在某一指定的執行級別內被啟動還是被停運。譬如,要在執行級別3、4、5中停運 nscd 服務,使用下面的命令:

chkconfig --level 345 nscd off

3:由 xinetd 管理的服務會立即被 chkconfig 影響。譬如,如果 xinetd 在執行,finger 被禁用,那麼執行了 chkconfig finger on 命令後,finger 就不必手工地重新啟動 xinetd 來立即被啟用。對其它服務的改變在使用 chkconfig 之後不會立即生效。必須使用service servicename  start/stop/restart命令來重起服務

 

]Linux中如何自動啟動服務


linux自動啟動服務很簡單,最簡單的是把啟動命令放到/etc/rc.d/rc.local檔案裡。這樣就可以每次啟動的時候自動啟動服務了。例如對於 apache,編譯好apache後會在安裝目錄的bin下生成apachectl檔案,這是個啟動指令碼,我們只需要把這個命令加到rc.local裡就可以了:
echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local

此外我們還可以使用chkconfig命令來把某項服務加到系統的各項執行級別中,步驟如下:
1 建立啟動指令碼,對於apache、mysql、ssh這樣的軟體都是自己帶的,我們只要稍微修改一下使之支援chkconfig就可以了
2 修改指令碼
我們需要在指令碼的前面加上2行,才能支援chkconfig命令
# chkconfig: 2345 08 92
# description: Automates a packet filtering firewall with ipchains.

chkconfig:後面定義的使啟動服務的執行級別(例子中使2345啟動該服務),以及關閉和啟動服務的順序(上例中啟動服務的順序是8,關閉的順序是92)。
descriptions:對該服務的描述(上例中是ipchains包過濾),你可以換成自己想要的

修改好之後執行
cp 你的指令碼 /etc/rc.d/init.d/指令碼名
chmod 700 /etc/rc.d/init.d/指令碼名
chkconfig --add 指令碼名
以後每次重新啟動伺服器都會自動啟動和關閉我們的服務了


而且你執行setup之後也可以看到我們新增的服務,選中我們新增的服務按F1鍵還可以看到我們定製的資訊。 

附chkconfig命令:

  chkconfig命令主要用來更新(啟動或停止)和查詢系統服務的執行級資訊。謹記chkconfig不是立即自動禁止或啟用一個服務,它只是簡單的改變了符號連線。

語法:

    chkconfig --list [name]
    chkconfig --add name
    chkconfig --del name
    chkconfig [--level levels] name <on|off|reset>
    chkconfig [--level levels] name

    chkconfig 沒有引數執行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前執行級啟動。如果是,返回true,否則返回false。如果在服務名後面指定 了on,off或者reset,那麼chkconfi 會改變指定服務的啟動資訊。on和off分別指服務被啟動和停止,reset指重置服務的啟動資訊,無論有問題的初始化指令碼指定了什麼。on和off開 關,系統預設只對執行級3,4,5有效,但是reset可以對所有執行級有效。

    --level選項可以指定要檢視的執行級而不一定是當前執行級。

    需要說明的是,對於每個執行級,只能有一個啟動指令碼或者停止指令碼。當切換執行級時,init不會重新啟動已經啟動的服務,也不會再次去停止已經停止的服務。

    chkconfig --list :顯示所有執行級系統服務的執行狀態資訊(on或off)。如果指定了name,那麼只顯示指定的服務在不同執行級的狀態。


    chkconfig --add name:增加一項新的服務。chkconfig確保每個執行級有一項啟動(S)或者殺死(K)入口。如有缺少,則會從預設的init指令碼自動建立。

    chkconfig --del name:刪除服務,並把相關符號連線從/etc/rc[0-6].d刪除。
    chkconfig [--level levels] name <on|off|reset>:設定某一服務在指定的執行級是被啟動,停止還是重置。例如,要在3,4,5執行級停止nfs服務,則命令如下:
    chkconfig --level 345 nfs off


執行級檔案:

    每個被chkconfig管理的服務需要在對應的init.d下的指令碼加上兩行或者更多行的註釋。第一行告訴chkconfig預設啟動的執行級以及啟動和停止的優先順序。如果某服務預設不在任何執行級啟動,那麼使用 - 代替執行級。第二行對服務進行描述,可以用\ 跨行註釋。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \

# higher quality random number generation.
此例子表明random服務的預設啟動執行級在2、3、4、5級,啟動的優先順序(順序號)是20,停止的優先順序(順序號)是80。

附加介紹一下Linux系統的執行級的概念:

    Linux中有多種執行級,常見的就是多使用者的2,3,4,5 ,很多人知道5是執行X-Windows的級別,而0就是關機了。執行級的改變可以通過init命令來切換。例如,假設你要維護系統進入單使用者狀態,那麼,可以使用init1來切換。在Linux的執行級的切換過程中,系統會自動尋找對應執行級的目錄/etc/rc[0-6].d下的K和S開頭的檔案, 按後面的數字順序,執行這些指令碼。對這些指令碼的維護,是很繁瑣的一件事情,Linux提供了chkconfig命令用來更新和查詢不同執行級上的系統服務 

 

 


Linux伺服器常用啟動服務的命令

 
amba是Linux下提供的類Windows下"網路鄰居"的服務。一般只有啟動的時候安裝了才可以啟用。不過大部分Linux在安裝時就已經包含了這個軟體包,在啟動時自動啟動了服務,不過我們也可以手動啟動這個服務。

一般的Linux系統,服務一般配置在/etc/init.d或者/etc/rc.d/init.d資料夾下,國產RedFlag Linux乾脆兩個目錄下都有對應的服務,只是/etc/init.d下面的配置成系統預設的。

PS:RedFlag Linux還相容Dos命令,看來是不遺餘力的縱容了使用者的習慣。

下面是我在RedFlag Linux的兩個服務目錄下看到的(保留部分有代表性的):

$ ls /etc/init.d $ ls /etc/rc.d/init.d 說明
dhcpd dhcpd DHCP服務
httpd httpd WEB服務
ldap ldap 輕量級目錄服務
mysqld mysqld Mysql資料庫服務
proftpd proftpd FTP服務
sendmail sendmail 郵件服務
smb smb 網路檔案服務
sshd sshd SSH服務

 

每個服務的啟動:/etc/init.d/{服務名} start或者/etc/rc.d/init.d/{服務名} start 每個服務的停止:/etc/init.d/{服務名} stop或者/etc/rc.d/init.d/{服務名} stop 每個服務的重啟:/etc/init.d/{服務名} restart或者/etc/rc.d/init.d/{服務名} restart

比如對samba服務進行操作(對應服務名smb):

每個服務的啟動:/etc/init.d/smb start或者/etc/rc.d/init.d/smb start
每個服務的停止:/etc/init.d/smb stop或者/etc/rc.d/init.d/smb stop
每個服務的重啟:/etc/init.d/smb restart或者/etc/rc.d/init.d/smb restart

 

 

linux開機啟動服務的修改與檢視 




首先了解linux的執行級別有哪些?
6個執行級別

        # 0 - 停機(千萬不要把initdefault設定為0 ) 
    # 1 - 單使用者模式 
    # 2 - 多使用者,但是沒有NFS 
    # 3 - 完全多使用者模式 
    # 4 - 沒有用到 
    # 5 - X11 
    # 6 - 重新啟動(千萬不要把initdefault設定為6 ) 
    # 對各個執行級的詳細解釋: 
    0 為停機,機器關閉。 
    1 為單使用者模式,就像Win9x下的安全模式類似。 
    2 為多使用者模式,但是沒有NFS支援。 
    3 為完整的多使用者模式,是標準的執行級。 
    4 一般不用,在一些特殊情況下可以用它來做一些事情。例如在膝上型電腦的電池用盡時,可以切換到這個模式來做一些設定。 
    5 就是X11,進到X Window系統了。 
    6 為重啟,執行init 6機器就會重啟。 
修改級別
vi /etc/inittab
把id:3:initdefault:中的3改為相應的級別



每次系統開機的時候,都會根據不同的runlevel級別啟動不同的服務。
開機按[CTRL]+[ALT]+[F7]/[F8]可檢視系統啟動時正在啟動的服務!!!!
  眾所周知Linux給我們提供了7中不同的啟動級別0~6,那麼不同的啟動級別都會啟動那些服務哪。可以使用chkconfig ——list 檢視,可以使用chkconfig 服務名 ——level 3 {on|of}修改是否要再某個級別啟動或停止。
  1. 例如:要把sshd服務在第3種啟動級別中停止。
[root@team4 rc3.d]# chkconfig sshd --level 3 off 中國網管聯盟www.bitscn.com
  2. 還可以手工修改,在/etc/rc.d/這個目錄裡有很多不同runlevel對應的目錄,裡面表明進入某個啟動級別時要啟動和停止那些服務。
  例如: 中國網管聯盟www、bitsCN、com
[root@team4 etc]# ls /etc/rc.d
init.d  rc0.d  rc2.d  rc4.d  rc6.d     rc.sysinit
rc      rc1.d  rc3.d  rc5.d  rc.local
我們用rc3.d這個目錄為例,這個目錄裡面記錄的是進入init 3時需要停止和啟動那些服務。
下面為rc3.d目錄的內容:
[root@team4 etc]# ls /etc/rc.d/rc3.d/
K02avahi-dnsconfd            K89pand             S25bluetooth
K02dhcdbd                    K89rdisc            S25netfs
K02NetworkManager            K91capi             S25pcscd
K02NetworkManagerDispatcher  K99readahead_later  S26apmd
K05conman                    S04readahead_early  S26hidd
  K開頭代表這個啟動級別需要停止的服務,編號是停止的時候執行的順序,再後面就是服務明瞭。
  S開頭則是要啟動那些服務。 網管網bitsCN_com
  注意:先執行K開頭的,後執行S開頭的。所以S開頭的服務會覆蓋K開頭的服務。
Linux設定程式的開機自啟動與Linux服務
這裡只說我所知道的,舉例如下
需求是我要用Windows下的VNC Viewer連線到Linux Server. 我在Linux下面輸入
#vncserver
設定好密碼,好現在我就可以在Windows下面使用VNC連線到Linux桌面了,這個時候如果我的Linux Server系統重啟了,那麼我還得再敲一次vncserver這個命令,所以我現在要讓Linux Server在開機時自動啟動vncserver
有哪些方法呢?
1. 我可以把vncserver設定成系統的服務,並啟動起來,使用如下命令檢視vncserver是否已經是系統的服務
#chkconfig --list|grep vnc
vncserver    0:off 1:off 2:off 3:off 4:off 5:off 6:off
現在我們要設定vncserver開機自啟動,使用如下命令
#chkconfig --level 5 vncserver on#chkconfig --list|grep vnc
vncserver    0:off 1:off 2:off 3:off 4:off 5:on 6:off
這個時候重啟系統,那麼vncserver就會以服務的方式自動起來,但是現在如果想立即使用vnc則直接敲命令 vncserver即可
2. 我們可以把vncserver這條命令寫在Linux開機要執行的指令碼里面,那些指令碼是Linux開機時要執行的呢?
我知道的有以下這些:
/etc/rc.local
/etc/rc.sysinit
/etc/inittab
/etc/profile
這裡記住Linux服務於Linux開機自啟動之間的區別和聯絡。

 

 

RedHat Linux下注冊Apache為系統服務並設為開機啟動

1、系統環境:

作業系統:Red Hat Enterprise Linux Server release 5.4

Apache版本:httpd-2.2.19

2、註冊服務

#將apachectl複製到init.d目錄下

[root@bogon ~]# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

#修改httpd

[root@bogon ~]# vi /etc/init.d/httpd

#找到#!/bin/sh,另起一行增加以下內容,並儲存(:wq!)退出。

#chkconfig:345 85 15 

#description:Start and stop the Apache HTTP Server 

 

【說明】:在註冊過程中增加#chkconfig:35 70 30,再通過chkconfig --add httpd註冊服務時,報如下錯誤service httpd does not support chkconfig,修改為chkconfig: 2345 10 90即可正常註冊。

#註冊服務

[root@bogon init.d]# chkconfig --add httpd

[root@bogon init.d]# chkconfig httpd on

3、通過服務方式啟動、停止Apache

#啟動、重啟、停止服務

啟動服務:service httpd start

停止服務:service httpd stop

重新啟動:service httpd restart

4、設為開機啟動

在/etc/rc.d/rc.local中增加啟動apache的命令,例如:/usr/local/apache2/bin/apachectl start

 

 

 

 

原始碼安裝apache及配置轉發 

一、    安裝Apache 
 a)    解壓:tar -xvf httpd-*; 
b)    ./configure --prefix=/usr/oracle/apache CC="gcc -m32" \--enable-proxy=shared --enable-proxy-http=shared --enable-proxy-ftp=shared --enable-proxy-connect=shared --enable-so --enable-modules=all --enable-mods-shared=all 
 c)    make 
 d)    make install 

基本的操作方法: 
 本文假設你的apahce安裝目錄為/usr/local/apache2,這些方法適合任何情況 

apahce啟動命令: 
 推薦/usr/local/apache2/bin/apachectl start apaceh啟動 

apache停止命令 
/usr/local/apache2/bin/apachectl stop   停止 

apache重新啟動命令: 
/usr/local/apache2/bin/apachectl restart 重啟 

 要在重啟 Apache 伺服器時不中斷當前的連線,則應執行: 

/usr/local/sbin/apachectl graceful 

如果apache安裝成為linux的服務的話,可以用以下命令操作: 

service httpd start 啟動 

service httpd restart 重新啟動 

service httpd stop 停止服務 

 配置轉發功能 

 開啟apache安裝目錄的conf資料夾下的httpd.conf 

 1、將以下兩行前的註釋字元 # 去掉: 

#LoadModule proxy_module modules/mod_proxy.so 

 #LoadModule proxy_http_module modules/mod_proxy_http.so 

 2、在httpd.conf 檔案的最後加上轉發規則 

 例如: 

ProxyPass /cas http://192.168.0.206:9090/cas 

 ProxyPassReverse /cas  http://192.168.0.206:9090/cas 

將/cas開頭的請求轉發到206伺服器9090埠的cas上 

 依次類推,其他的轉發也是通過這種方式設定,如: 

ProxyPass /cas http://192.168.0.206:9090/cas 

 ProxyPassReverse /cas  http://192.168.0.206:9090/cas 

 #bbs不轉發,採用apache處理 


ProxyPass /bbs ! 

ProxyPassReverse /bbs  ! 

 

相關文章