/etc/security/limits.conf의 변경 사항에 재부팅이 필요합니까?


144

변경 사항 /etc/security/limits.conf을 적용하기 전에 재부팅해야합니까?

에 다음 제한을 설정하는 스크립트가있는 것처럼 /etc/security/limits.conf이 제한이 적용되기 전에 시스템을 재부팅해야합니까?

* hard nofile 94000
* soft nofile 94000
* hard nproc 64000
* soft nproc 64000

2
로그 아웃이 충분해야합니다
UVV

/etc/security/limits.d/90-nproc.conf 파일을 편집하고 시스템을 재부팅하십시오

답변:


108

아니요. 그러나 모든 활성 세션 창을 닫아야합니다. 그들은 여전히 ​​오래된 가치를 기억합니다. 다시 말해, 로그 아웃했다가 다시 로그인하십시오. 모든 원격 새 세션 또는 로컬 보안 쉘이 한계 변경 사항을 적용합니다.


17
내가, 로그인이없는 사용자에 대한 제한을 설정하려면 같은 내가 설정하려는 경우 nofile에 제한을 94000에 대한 mongodb사용자? 재부팅하지 않고 어떻게 했습니까? mongodb서비스 를 다시 시작해야 합니까?
Alexej Magura

2
@AlexejMagura prlimit명령을 사용하여 실행중인 프로세스의 한계를 수정할 수 있습니다 .
Bratchley

7
@Gilles, 정밀도 덕분에 모호함을 피하기 위해 답을 편집했습니다. 그러나 새 서비스를 사용 sudo service mongodb restart하면 새 한계 값으로 서비스를 실행할 수 있습니다.
Slyx

6
Ubuntu를 사용 중이고 mongodb가 upstart로 시작된 경우 이러한 제한을 변경해도 mongodb에 영향을 미치지 않습니다. 으로 upstart의 / etc / 보안 설정 읽지 않습니다 bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669 설정해야하는 limit그 신출내기 설정 파일에 연을.
HVNSweeting

5
또 다른 문제입니다. upstart의도적으로에 설정된 제한을 무시합니다 /etc/security/limits.conf.
Slyx

35

prlimit가 설치된 경우 실행중인 프로세스에 변경 사항을 직접 적용하십시오 (util-linux-2.21 제공)

prlimit --pid <pid> --<limit>=<soft>:<hard>

예를 들어

prlimit --pid 12345 --nofile=1024:2048

여기를 참조하십시오


29

현재 로그인 한 사용자에 대해 열린 파일 제한을 임시로 설정하려면 (예 : 'root') : ulimit명령을 사용 하여 현재 쉘의 값을 변경할 수도 있습니다 . 그러나 하드 제한은 근본이 아닌 한 아래쪽으로 만 조정할 수 있습니다.

예:

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 62449
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

을 변경하려면 nofile94000 당신이 할 수 있습니다 :

ulimit -n 94000

15

한계는 상위 프로세스에서 하위 프로세스로 상속됩니다. 루트로 실행되는 프로세스는 임의로 한계를 변경할 수 있습니다. 다른 프로세스는 하드 한계를 늘릴 수 없습니다. 따라서 로그인 프로세스에 의해 설정된 하드 한계는 세션의 모든 프로세스에 영향을줍니다.

을 변경하면 /etc/security/limits.conf모든 새 세션에 영향을 미치며 새 세션에서 처리됩니다. 이미 실행중인 프로세스 나 이미 실행중인 프로세스에 의해 시작된 프로세스에는 영향을 미치지 않습니다.

따라서 일부 제한을 늘려야하는 경우 로그 아웃했다가 다시 로그인하거나 다른 세션을 시작해야합니다 (예 :로 ssh localhost또는 다른 콘솔에서).


4

@Tombart의 답변 을 인용하려면

이 한계는 재부팅 후 적용됩니다.

재부팅하지 않고 변경 사항을 적용하려면 /etc/pam.d/common-session파일 끝에 다음 줄을 추가하여 수정 하십시오.

session required pam_limits.so
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.