shell script的問題

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

shell script的問題

文章THQ » 週一 3月 20, 2006 10:35 pm

#!/bin/sh
ulimit -n 5000


為什麼執行完後,執行ulimit -n
還是1024呢?
THQ
活潑的高中生
活潑的高中生
 
文章: 492
註冊時間: 週二 1月 04, 2005 9:11 pm

文章yzcie » 週二 3月 21, 2006 11:15 am

嗨, THQ 兄,
您可以在 consol 下試試
代碼: 選擇全部
user@host:~$ ulimit -n
user@host:~$ ulimit -n 1024
user@host:~$ ulimit -n
user@host:~$ bash
user@host:~$ ulimit -n
user@host:~$ ulimit -n 512
user@host:~$ ulimit -n
user@host:~$ bash
user@host:~$ ulimit -n
user@host:~$ ulimit -n 256
user@host:~$ ulimit -n
user@host:~$ exit
user@host:~$ ulimit -n
user@host:~$ exit
user@host:~$ ulimit -n

然後把上面的 ulimit -n 256 改成 ulimit -n 768 再試一次.
您會發現每一層 shell 會有自己的 limit 數.
而子 shell 可以設定的最大 limit 數, 會是父 shell 的 limit.

如果您要改全域的 limit, 可以研究一下 /etc/security/limits.conf 這個檔案.
--
好奇的問一下, 您是跑什麼程序, 需要去增加 limut ?
yzcie
可愛的小學生
可愛的小學生
 
文章: 65
註冊時間: 週三 1月 26, 2005 3:19 pm
來自: 台灣

文章THQ » 週三 3月 22, 2006 4:07 pm

我不太懂 子 shell 和 父 shell ,是否有相關資料可以提供一下
thx~
THQ
活潑的高中生
活潑的高中生
 
文章: 492
註冊時間: 週二 1月 04, 2005 9:11 pm

文章yzcie » 週三 3月 22, 2006 5:10 pm

您會用 ulimit, 小弟猜想您應該是用 bash shell 吧.
簡單來說
當您使用終端機登入主機後, 預設會給您一個 shell 程序.
您在這個 shell 中可以執行其他的程式, 而程式的父程序就是您當前的 shell.
如果您在 shell 中執行一個 bash, 等於是生成了另一個 bash shell 子程序.
例如, 您寫的那個 shell script, 就是另外開啟了一個 bash 程序.
然而, ulimit 只會影響自己本身, 以及自己的子程序(如果有的話), 並不會影響到父程序.

另外,別名會以同一個程序來執行, 不會另外產生一個shell子程序.

小弟前面說的父 shell 與子 shell 不算是正式的稱呼.

--
關於 shell script, 您可以參考鳥哥或網中人大大的 網站.
另外, 歐萊禮有本 Bash, 也很值得參考, 您可以到書店去找找.
書裡面有很多觀念的講解(雖然小弟 K 的是中譯本, 但還是覺得有點硬).
yzcie
可愛的小學生
可愛的小學生
 
文章: 65
註冊時間: 週三 1月 26, 2005 3:19 pm
來自: 台灣


回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客