sysctl -a는 모든 커널 매개변수를 어디에서 인쇄합니까?

sysctl -a는 모든 커널 매개변수를 어디에서 인쇄합니까?

우리는 리눅스 박스(Redhat 6)를 가지고 있습니다.

모든 매개변수를 인쇄하면 /etc/sysctl.conf약 20개만 표시되지만 실행하면 sysctl -a200개가 넘게 표시됩니다.

그러면 이러한 모든 매개변수를 어디에서 인쇄해야 합니까 sysctl -a?

아니면 예를 들어 우리가 할 때

sysctl -w variable=value

변수를 어디에 저장해야 하는지 어떻게 알 수 있나요?

각 매개변수가 동적인지 정적인지 어떻게 알 수 있나요?

답변1

시스템 제어 레지스터설정은 커널에 저장됩니다. 이러한 설정은 커널 동작에 영향을 미치며 기본적으로 시스템에서 실행되는 프로그램에서 읽고 쓸 수 있는 커널 변수입니다.

커널이 시작되면 각 sysctl 설정에는 기본값이 있습니다. 이 값은 command와 같은 프로그램을 통해 언제든지 변경할 수 있으며 sysctl, Linux에서는 /proc/sys.

이 파일은 /etc/sysctl.conf런타임 시 설정 값을 결정하지 않습니다. 커널에 컴파일된 기본값의 특정 설정을 변경하기 위해 부팅 시에만 사용됩니다. 일부 변경 사항을 적용한 경우 /etc/sysctl.confsysctl "서비스"를 다시 시작하여 전체적으로 적용할 수 있습니다. sysctl 서비스는 실행 중인 프로세스와 일치하지 않으며 커널 내: 시작에 설정만 로드하는 의사 서비스입니다.

재부팅 후에도 값이 유지되도록 설정을 변경하려면 에 추가하세요 /etc/sysctl.conf. 설정을 임시로 적용하거나 설정을 시도하려면 sysctl또는 를 사용하세요 echo … >/proc/sys/….

답변2

각 매개변수가 동적인지 정적인지 어떻게 알 수 있나요?

의 모든 커널 매개변수는 sysctl동적입니다. 커널 버전과 비교하여 이 숫자를 확인하면 sysctl -a | wc -l1000 이상이어야 합니다.

이러한 값을 읽으려면 다음과 같은 몇 가지 스마트 옵션이 있습니다.

sysctl net.ipv4.ip_forward          # display specific parameter
sysctl net.ipv4                     # display all net.ipv4.* parameters
sysctl -a                           # display all parameters

/etc/sysctl.conf값을 지속적으로 쓰려면 디렉토리 에 있는 모든 conf 파일을 사용할 수 있습니다 /etc/sysctl.d/. conf 파일을 업데이트한 후에는 구성 파일을 다시 로드해야 합니다.

sysctl -p [filename]

물론 sysctlGilles가 설명하는 대로 "서비스"를 다시 시작할 수 있습니다.

sysctl -a는 모든 커널 매개변수를 어디에서 인쇄합니까?

의사 파일 시스템 procfs(man procfs)에서. 커널 데이터 구조에 대한 인터페이스를 제공합니다. 일반적으로 /proc시스템에 의해 자동으로 설치 됩니다 .

관련 정보