javascript部分事件解釋

來源:互聯網
上載者:User

init詳解 
理解:
當系統啟動時,首先啟動核心,核心調用init來完成引導進程。
init啟動時,它會在/etc/inittab內尋找預設的運行層級:如id : 2 : initdefault :
運行 /etc/rc.d/init.d中運行層級為2的啟動指令碼。由於init.d中的運行層級的這些指令碼都用ln 命令串連到 /etc/rc.d/rcn.d 目錄。例如/etc/rc.d/rc2.d/S10network對應/etc/rc.d/init.d下的network 指令碼的。因此運行/etc/rc.d/rc2.d下的指令碼。

如/etc/rc.d/rc2.d/S10network或/etc/rc.d/rc2.d/K45named等,則在第10個啟動network,在第45個終止named

init詳解

1、什麼是init進程
init進程,是一個由核心啟動的使用者級進程,核心自行啟動後,就通過啟動init來完成引導進程。所以,init始終是第一個進程(其進程編號始終為1)

2、檔案位置
/sbin/init。如果核心找不到init,它就會試著運行/bin/sh

3、運行層級 

  運行級就是作業系統當前正在啟動並執行功能層級。這個層級從1到6 ,具有不同的功能。
 
  # 0 - 停機(千萬不能把initdefault 設定為0 ) 
  # 1 - 單一使用者模式 
  # 2 - 多使用者,沒有 NFS 
  # 3 - 完全多使用者模式(標準的運行級) 
  # 4 - 沒有用到 
  # 5 - X11 (xwindow) 
  # 6 - 重新啟動 (千萬不要把initdefault 設定為6 ) 

1)、運行層級的配置是在/etc/inittab 檔案裡配置的。最先啟動並執行服務是/etc/rc.d 下的檔案。啟動指令碼都是位於 /etc/rc.d/init.d中的。這些指令碼被用ln 命令串連到 /etc/rc.d/rcn.d 目錄。(這裡的n 就是運行級0-6) 運行層級的配置

  如下所示: 
  12 : 2 : wait : /etc/init.d/rc2 
  12:是一個任意指定的標籤;
  2:表示這一行適用於運行那個層級(這裡是2);
  wait:進入運行層級時,init應該等待第四個欄位內的命令結束。 
  /etc/init.d/rc2:Linux版本的不同,採用的具體命令也不同,運行層級的配置也有差別。

2)、init啟動時,它會在/etc/inittab內尋找一個程式碼,這一行指定了預設的運行層級: 
  id : 2 : initdefault :

 
3)、rcn.d與inittab的關係

rcn.d目錄和運行層級n相關。/ect/rc.d/rcn.d是用ln命令和/etc/rc.d/init.d中的指令碼關聯的,例如:
rc2.d 目錄下面的檔案就是和運行層級2 相關的。

/etc/rc.d/rc2.d/S10network對應/etc/rc.d/init.d下的network 指令碼的
檔案開頭的S 代表start 就是啟動服務的意思,後面的數字10 就是啟動的順序

/etc/rc.d/rc2.d/S80postfix,80 就是順序在10 以後,因為沒有啟動網路的情況下,啟動postfix是沒有任何作用的
/etc/rc.d/rc3.d/S60nfslock,NFS 要用到這個檔案,一般用在多使用者環境下,所以放在rc3.d 目錄下

/etc/rc.d/rc2.d/K45named ,K 代表 kill

標準的Linux運行級為3 或者5 ,如果是3 的話,系統就在多使用者狀態。如果是5的話,則是運行著X Window 系統。如果目前正在3或5,而你把運行級降低到2的話,init 就會執行 K45named 指令碼。

不同的運行級有不同的用處,例如,如果丟失了root 口令,那麼可以讓機器啟動進入單使用者狀態來設定。在啟動後的 lilo 提示符下輸入:init=/bin/sh rw
就可以使機器進入運行級1 ,並把 root 檔案系統掛為讀寫。他會跳過所有系統認證, 讓你使用passwd 程式來改變root口令,然後啟動到一個新的運行級。

4、/etc/inittab中的特殊配置 

  /etc/inittab中,有幾個特殊的特性,允許init重新啟用特殊事件。這些特殊特性都是用第三個欄位中的特殊關鍵字標記出來的。比如: 

  1. powerwait 
  允許init在電源被切斷時,關閉系統。其前提是具有U P S和監視U P S並通知init電源已被切斷的軟體。 

  2. ctrlaltdel 
  允許init在使用者於控制台鍵盤上按下C t r l + A l t + D e l按鍵組合時,重新啟動系統。注意,如果該系統放在一個公用場所,系統管理員可將C t r l + A l t + D e l按鍵組合配置為別的行為,比如忽略等。 

3. sysinit
  系統啟動時準備啟動並執行命令。比如說,這個命令將清除/tmp。
  其他的關鍵字及其使用詳情,可參考inittab手冊頁。 

運行層級補充

1、確定當前的運行層級

本章不是針對系統管理員的,但是作為s h e l l編程者,應當瞭解r c . s c r i p t s是什麼,它們是被怎樣放置到運行層級配置目錄中的。順便說一下,如果想知道當前的運行層級,可以用下面的命令:
who -r

在‘run level’後面的數字就是當前的運行層級。後面的時間是系統最近一次重啟動的時間。
如果是L I N U X系統,那麼

$ runlevel
2 3
第一列表示系統的前一個運行層級,第二列表示系統當前的運行層級,在這裡是3。

2、inittab
i n i t t a b檔案所包含的域具有嚴格的格式。該檔案中每個條目的格式為:
i d : r s t a r t : a c t i o n : p r o c e s s
其中,i d域是相應進程的唯一標識。
r s t a r t域所包含的數字表示運行該進程的層級。
a c t i o n域告訴i n i t進程如何對待p r o c e s s所對應的進程。這裡可以有很多種動作,但是最常見的是w a i t和r e s p a w n。w a i t意味著當進程啟動後等待它結束。r e s p a w n則意味著如果該進程不
存在,則啟動相應的進程,如果它存在,那麼只要它一掉下來就立即重新啟動它。
p r o c e s s域包含了實際要啟動並執行命令。

該檔案的第一行是系統預設的運行層級,這裡是層級3,一般都是這樣。
以數字1 0到1 6開始的行啟動或停止該運行層級所對應的全部運行層級指令碼。例如,該檔案中有這樣一行:
15:5:wait:/etc/rc.d/rc 5
它的意思是,在運行層級5應該以參數5執行指令碼/ e t c / r c . d / r c,即/ e t c / r c . d / r c執行/ e t c / r c . d / r c 5 . d
目錄中的所有指令碼。
在上述檔案的最後一行,在運行層級2、3、4和5,該進程將會始終存在,即使暫時掉下來,大概也不會超過1 s。這一始終存在的進程是串口t t y S 1上的m i n g e t t y。該命令含有一個參數,即終端類型為v t 1 0 0。

3、運行層級指令碼的格式
r c N . d目錄中的指令碼都是一些連結,這樣是為了省去不必要的副本。這些連結的格式為:
S n n n . s c r i p t _ n a m e
K n n n . s c r i p t _ n a m e
其中,
S:代表啟動相應的進程
K:代表殺死相應的進程
n n:是0 0至9 9的兩位元字,不過在有些系統中是0 0 0至9 9 9三位元字。在不同目錄中的連結應採用同一數字。例如,如果某個服務在r c 3 . d中啟動時名為S 4 5 . m y s c r i p t,那麼如果希望它
在r c 2 . d中啟動,應當使用連結名S 4 5 . m y s c r i p t。
s c r i p t _ n a m e:相應指令碼的檔案名稱,根據所在作業系統的不同,它們可能位於下列目錄中:
/ u s r / s b i n / i n i t . d
/ e t c / r c . d
/ e t c / i n i t . d
當i n i t 進程調用相應的運行層級指令碼時,殺進程按照從高到低的K序號進行,即
K23,myscript K12.named;而啟動進程按照從低到高的序號進行。如果使用的是L I N U X系統,K序號將按照從高到低的順序執行。

安裝運行指令碼

1、安裝運行層級指令碼
如果想要安裝自己的運行層級指令碼,必須:
• 編寫該指令碼,確保它符合調用標準。
• 確信它能夠啟動或終止相應的服務。
• 將該指令碼放置於(取決於作業系統) / e t c / i n i t . d或/ u s r / s b i n / i n i t . d或/ e t c / r c . d中。
• 在相應的r c N . d目錄中按照合理的命名方式建立連結。
下面的指令碼能夠啟動或停止一個名為r c . a u d i t的審核應用程式。該服務運行於層級3、5、4,停止於層級6、2、1。通過查看r c N . d中的條目,我們發現序號3 5空閑,於是就使用該序號。
實際上,系統並不對使用已佔用的序號作任何檢查。

讓我們假定該指令碼已經通過了測試。它能夠正確地啟動和停止審核服務。現在我們把該指令碼放置在相應的運行層級目錄中。
在本系統中,r c N . d目錄位於/ e t c / r c . d目錄下,而我的運行層級指令碼儲存在/ e t c / r c . d / i n i t . d目錄下。如果系統目錄結構與上面的不同,那麼需要對下面的命令作相應的調整。
我們首先啟動該指令碼—記住啟動指令碼所使用的連結名是以S打頭的。

$pwd
/etc/rc.d/rc3.d
$ln -s ../init.d/rc.audit S35rc.audit

$ls -l
....
lrwxrwxrws 1 root root .....S35rc.audit -> ../init.d/rc.audit
.......
我們已經建立了相應的連結。ls -l命令的結果顯示該連結指向/ e t c / i n i t . d / r c . a u d i t檔案。現在只要進入其他的相關目錄( r c 4 . d
和r c 5 . d )使用同樣的命令就可以啟動其他相應的服務。
如果希望停止某個指令碼的運行,可以使用如下命令:
$pwd
/etc/rc.d/rc6.d
$ln -s ../init.d/rc.audit K35rc.audit
$ls -l
...
lrwxrwxrwx 1 root root ... K35rc.audit -> ../init.d/rc.audit
...

在其他相關目錄中,也可以如法炮製,停止相應的審核服務。現在當系統重啟動時(運行層級6 ),它將被停止;在運行層級切換到2或1時也是如此。該服務在運行層級4或5中同樣也會被啟動。

2、使用inittab來啟動應用程式

我們還可以用其他的方法來啟動應用程式。可以通過在i n i t t a b檔案中加入相應的條目來做到這一點。
系統運行在層級3時運行我的一個磁碟鏡像檢查指令碼。
首先我確定該指令碼能夠正確運行,然後對i n i t t a b檔案做備份。
$ cp /etc/initab /etc/inittab.bak
接下來編輯i n i t t a b檔案,在該檔案末尾加入這樣一個條目:
rc.diskchecker:3:once:/usr/local/etc/rc.diskchecker > /dev/console 2>&1
儲存並退出。
上面的一條意思是:
行首的r c . d i s k c h e c k e r是該進程在運行層級3中的唯一標識。該進程只運行一次。所要啟動並執行指令碼是/ u s r / l o c a l / e t c / r c . d i s k c h e c k e r,所有的輸出都被送到控制台。

3、啟動和停止服務的其他方法rc.local

如果不想把/ e t c / i n i t t a b檔案弄得過於雜亂,還有其他的方法可以實現啟動和停止服務的功能。大多數系統都含有一個名為r c . l o c a l的檔案,一般來說也是位於/ e t c目錄下。該指令檔將在i n i t t a b和運行層級指令碼之後運行。可以在該檔案中加入任何命令,或從中調用最習慣用的啟動指令碼。
有些系統還在/ b i n目錄下(更多的是在/ u s r / s b i n目錄下)含有一個名為s h u t d o w n的指令檔。
可以使用它來關閉某些服務。

[javascript]關於onselectstart

這個屬性用在body中,可以實現對文本的選擇與否的控制,onselectstart="return true" -- 可選,是預設項,false -- 不可選。如果要實現對頁面上某些對象文本資訊的控制,可以採用編寫當該對象為指定對象時返回一個boolean值的方法來控制。

function allowedSelect()
{
      var obj= event.srcElement ;

      if(obj.tagName== "input" && the.type.toLowerCase() == "text" )

           return true;

     else

          return true ;
}

ondragstart
<body ondragstart="return false">
禁止滑鼠在網頁上拖動.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.