콘솔 로그인 프롬프트에서 dhcpd 출력을 비활성화하려면 어떻게 해야 합니까?

콘솔 로그인 프롬프트에서 dhcpd 출력을 비활성화하려면 어떻게 해야 합니까?

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

dhcpcdsyslog가 유틸리티의 기본 동작이기 때문에 왜 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.

관련 정보