Gnu-Screen
ulimit 權限是直接從螢幕實例硬設置的。如何解決這個問題?
充其量我可以用 shell 會話來描述這個問題:
這表明 ulimit 工作正常。這是正常 ssh 會話的開始:
$>ulimit -c 0 (ushanka:973:0) ~ $>ulimit -c unlimited (ushanka:974:0) ~ $>screen -t question <-- see next preformated section for screen session --> [screen is terminating] (ushanka:976:0) ~ $>ls -alh /usr/bin/screen -rwxr-sr-x 1 root screen 353K Dec 4 2006 /usr/bin/screen (ushanka:977:0) ~ $>ulimit -c unlimited
這是螢幕實例,ulimit 突然像為核心設置了硬限制 0 一樣。
$>ulimit -c 0 (ushanka:973:0) ~ $>ulimit -c unlimited bash: ulimit: core file size: cannot modify limit: Operation not permitted (ushanka:974:0) ~ $>cat ~/.bashrc . $HOME/lbin/setenv (ushanka:975:0) ~ $>cat ~/lbin/setenv MACH=`uname -m` settve() { eval `/home/tv/tools/common/bin/settve $0 $@`; } export LD_LIBRARY_PATH=${HOME}/local/${MACH}/lib:$LD_LIBRARY_PATH export PATH=${HOME}/local/${MACH}/bin:$PATH (ushanka:976:0) ~ $>
所以在螢幕會話 ulimit 內部似乎設置了 0 的硬限制,我不知道為什麼。一種解決方法是使用 su - 作為啟動螢幕的命令,但這並不實用。我已經看到了許多在螢幕內使用 ulimit 而沒有發生此問題的範例。重要的一件事可能是將螢幕的組會話 ID 設置為螢幕組。但是,/etc/security/limits.conf 文件中沒有任何限制。
有誰知道發生了什麼以及我該如何解決這個問題?
ulimit -c 0
我在沒有 -S的系統範圍內的互動式非登錄 shell 設置中找到了一個腳本。這就是導致問題的原因,因為執行螢幕會導致這些腳本對普通使用者透明執行。這是腳本中的一個錯誤,系統管理員已修復它。