![콘솔 로그인 프롬프트에서 dhcpd 출력을 비활성화하려면 어떻게 해야 합니까?](https://linux55.com/image/89496/%EC%BD%98%EC%86%94%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%EC%97%90%EC%84%9C%20dhcpd%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
dhcpd가 협상할 때 로그인 프롬프트에 출력을 인쇄합니다. 이는 콘솔 로그인 프롬프트를 어수선하게 만듭니다(어수선하게 만들고, 논쟁하고, 추악하게 만들고, 덮어쓰고, 모호하게 합니다[Google 직원의 동의어]). 콘솔 로그인 프롬프트에서 dhcpd 출력을 비활성화하려면 어떻게 해야 합니까?
다음과 같이 runit을 사용하여 Void Linux를 실행합니다 /etc/sv/dhcpd/run
.
#!/bin/sh
[ -r conf ] && . ./conf
exec dhcpcd -B ${OPTS:=-M} 1>&2
/etc/sv/dhcpd/conf
비었다.
답변1
dhcpcd
syslog가 유틸리티의 기본 동작이기 때문에 왜 syslog를 사용하지 않는지 잘 모르겠습니다 (Void Linux는 특수 버전을 사용할 수도 있음). 초기화 관리자가 출력을 보내는 곳이고 초기화 관리자가 시작한 응용 프로그램은 리디렉션되지 않는 한 STDOUT 및 STDERR을 상속하기 때문에 출력은 어쨌든 콘솔로 전송됩니다. 이는 솔루션이 단순히 출력을 리디렉션하는 것임을 의미합니다.
시스템에서 syslog 데몬이 실행되고 있다고 가정하면 개인적으로 스크립트를 다음과 같이 변경하겠습니다.
#!/bin/bash
[ -r conf ] && . ./conf
exec dhcpcd -B ${OPTS:=-M} > >(exec logger -t dhcpd -p daemon.info) 2> >(exec logger -t dhcpd -p daemon.err)
이는 레벨과 함께 STDOUT 출력을 syslog로 보내고 , 레벨 info
과 함께 STDERR 출력을 보냅니다 .err
답변2
freenode의 #voidlinux의 Duncaen이 나에게 이것을 주었다협회. 분명히 이 혼란스러운 출력은 dhcpcd가 아닌 dmesg에서 나온 것입니다. 해결책은 dmesg -n 1
에 추가하는 것입니다 /etc/rc.local
.