Mac에서 영구 쉘 ulimit 설정을 추가하는 방법은 무엇입니까? [복사]

Mac에서 영구 쉘 ulimit 설정을 추가하는 방법은 무엇입니까? [복사]

재부팅 시 기본적으로 코어 덤프 생성을 활성화하고 싶습니다.

구현하다:

ulimit -c unlimited

터미널에서는 컴퓨터가 다시 시작될 때까지 작동하는 것 같습니다.

답변1

뭔가 유용한 것을 찾은 것 같아요.

라는 프로그램을 사용했어요발사 제어다음 내용을 포함하는 enable core dumps.plistat이라는 파일을 만듭니다 ./System/Library/LaunchDaemons

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>GroupName</key>
    <string>wheel</string>
    <key>InitGroups</key>
    <true/>
    <key>Label</key>
    <string>core dumps launchctl</string>
    <key>ProgramArguments</key>
    <array>
        <string>launchctl</string>
        <string>limit</string>
        <string>core</string>
        <string>unlimited</string>
        <string>unlimited</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>root</string>
</dict>
</plist>

다음과 같은 권한이 있습니다:

$ ls -al enable\ core\ dumps.plist 
-rw-r--r--  1 root  wheel  582 Dec 30 15:38 enable core dumps.plist

이것은 성공한 것 같습니다:

$ launchctl limit core
    core        unlimited      unlimited 
$ ulimit -a core
core file size          (blocks, -c) unlimited
...
<output snipped>
...

방금 충돌이 발생한 작은 테스트 프로그램을 만들었습니다.

$ ./a.out 
Segmentation fault: 11 (core dumped)

보라, 코어 덤프가 생성된다:

$ # ls -al /cores/
total 895856
drwxrwxr-t@  3 root  admin        102 Dec 30 15:55 .
drwxr-xr-x  31 root  wheel       1122 Oct 18 10:32 ..
-r--------   1 root  admin  458678272 Dec 30 15:55 core.426

답변2

ulimit영구 셸 제한을 적용하려면 해당 시작 셸 파일에 명령을 추가 해야 합니다 .

개인 사용자의 경우 다음을 사용 ~/.bashrc하거나 ~/.bash_profile파일을 제출하세요.

모든 사용자의 경우 /etc/bashrc다음을 사용하십시오.

추가할 제안된 라인:

# Changes the ulimit limits.
ulimit -Sn 4096      # Increase open files.
ulimit -Sl unlimited # Increase max locked memory.

시스템 리소스 제한을 변경하려면 launchctl다음을 참조하세요.macOS에서 ulimit 설정을 유지하는 방법은 무엇입니까?

관련 정보