2017-03-03 115 views
1

我想了解這些限制是如何工作的。 但我無法弄清楚,爲什麼軟限制在硬限制出現時首先需要。 我經歷過的大多數網站都在談論他們是什麼,但沒有提到他們是如何工作的。Linux中的硬限制和軟限制

在進程的上下文中,任何人都可以解釋它是如何工作的?

謝謝。

+0

檢查此[soft-limit-vs-hard-limit](http://serverfault.com/questions/265155/soft-limit-vs-hard-limit) – franklinsijo

+0

@franklinsijo我已閱讀此內容。它解釋了它們是什麼。但這並不能解釋爲什麼首先需要軟限制?我們不能只用硬限制嗎? – RV186

回答

0

讓我們考慮一個用戶abc被設置爲

abc  soft nproc 1024 
abc  hard nproc 20000 

當這個用戶登錄的過程中,其數量,用戶的過程進行有效軟限制應用即abc可以運行最多1024個過程。 當此限制用完時,用戶將無法運行更多進程,除非軟限制進一步增加。

此時,用戶可以選擇增加(但不應該大於硬限制)進程限制。
如果用戶試圖將其增加到21000(這是上述的20000硬限制)

ulimit -S -u 21000 
-bash: ulimit: max user processes: cannot modify limit: Operation not permitted 

但是將其設置爲更小或等於硬限制被接受的任何值。增加硬限制只能通過root完成。

我們不能僅僅使用硬限制嗎?

是的,我們可以。

abc  soft nproc 20000 
abc  hard nproc 20000 

設置軟限制等於硬限制將使硬限制爲abc用戶的缺省限制。 但不建議這樣做,因爲它可能導致單個用戶耗盡大部分可完全生成的進程(如果設置的限制相對較高)(pid_max)。