다음 방법으로 코어 파일 제한 크기가 변경되지 않는 이유는 무엇입니까?

다음 방법으로 코어 파일 제한 크기가 변경되지 않는 이유는 무엇입니까?

이 문제를 해결하려면https://unix.stackexchange.com/a/446428/674, 나는 팔로우한다https://stackoverflow.com/a/17483998/156458, 그러나 코어 파일 제한 크기를 설정하지 않습니까?

$ sudo sh -c "ulimit -c 1024 && exec su t"

$ ulimit -c
0
  1. 이 접근 방식은 현재 셸의 코어 파일 제한 크기를 일시적으로 변경합니까, 아니면 모든 사용자 또는 현재 사용자의 모든 셸에 대한 코어 파일 제한 크기를 영구적으로 변경합니까?

  2. 고쳐 쓰다:원본 게시물https://stackoverflow.com/a/17483998/156458그리고https://unix.stackexchange.com/a/238413/674그리고https://unix.stackexchange.com/a/169035/674모두 권장됩니다 sudo sh -c "ulimit -c 1024 && exec su $LOGNAME". 그러나 둘 다 생성된 쉘 ulimit -c 1024에만 영향을 미치 므로 이 명령의 목적은 무엇입니까? 또한 변경된 제한 사항을 활용하는 것도 의미가 없습니다.exec su $LOGNAME"sudoexec su $LOGNAME"


노트:이 문제를 해결하는 다른 방법이 있지만 내 초점은 위의 방법이 작동하지 않는 이유에 있습니다.

  1. sudo가 실행하는 쉘에 새로운 제한 값을 사용하여 명령을 넣어야 할까요?

    예를 들어

    $ sudo sh -c "ulimit -c 1024 && sleep 100"
    ^\Quit
    $ ls
    core
    
  2. 나는 또한 그것을 수정하려고 노력할 수도 있습니다 /etc/security/limits.conf.

ベストアンサー1

맨페이지에 따르면 ulimit"셸에서 사용할 수 있는 리소스와 시작되는 프로세스에 대한 제어를 제공합니다." 따라서 이 ulimit값은 현재 쉘에 유효합니다.

서브셸을 호출 ulimit중이며 종료되면 기본값으로 돌아갑니다 ulimit.

[root@centos7 ~]# ulimit -c
0
[root@centos7 ~]# ulimit -c 1024
[root@centos7 ~]# ulimit -c
1024

おすすめ記事