OpenBSD에서 rcctl을 사용하여 httpd가 자동으로 시작되도록 올바르게 활성화하는 방법은 무엇입니까?

OpenBSD에서 rcctl을 사용하여 httpd가 자동으로 시작되도록 올바르게 활성화하는 방법은 무엇입니까?

OpenBSD 6.2 amd64를 실행하는 OpenBSD 시스템에서는 rcctl을 사용하여 httpd를 시작할 수 없습니다.

# rcctl start httpd
httpd(failed)

그러나 처음 입력을 시작하면 httpd작동하지만 올바른 방법은 아닌 것 같습니다. /var/log/messages프롬프트는 포함되지 않으며 다른 파일도 포함되지 않습니다 /var/log/.

내 것은 /etc/httpd.conf비교적 간단합니다.

server "default" {
        listen on * port 80
}

/var/www/var/www/htdocs수동 시작 시 제공되는 파일이 존재하며 포함되어 있습니다. "root"를 지정해도 /etc/httpd.conf아무런 효과가 없습니다.

httpd자동으로 활성화/시작하려면 어떻게 해야 합니까 rcctl?

답변1

문제는 httpd데몬에 잘못된 명령줄 인수(YESrcctl) 따라서 사용을 시작할 때 제대로 시작할 수 없습니다.


XXX_flags변수의 유일한 "특수" 값은 해당 서비스를 비활성화하는 /etc/rc.conf.local두 글자 문자열 입니다 . NO이는 대부분의 OpenBSD 서비스에 대한 기본값입니다(참고 /etc/rc.conf:안 돼요조정).

rcctl예를 들어 루트 ID를 사용하여 서비스를 활성화합니다 .

# rcctl enable httpd

이 경우에는 httpd다음 줄이 작성됩니다.

httpd_flags=

로 전환 /etc/rc.conf.local하면 서비스가 활성화됩니다 httpd.

값은 시작 시 httpd_flags실제 데몬에 전달 됩니다. httpd예를 들어 대체 구성 파일을 읽도록 할 수 있습니다.

httpd_flags=-f /etc/httpd.conf.local

rcctl/etc/rc.conf.local다음과 같이 수정할 수 있습니다 .

# rcctl set httpd flags -f /etc/httpd.conf.local

에디터를 이용해 직접 rcctl수정하는 것보다 활용하는 것이 더 좋습니다 ./etc/rc.conf.local

답변2

비슷한 문제가 발생할 수 있는 다른 사람들이 나중에 참조할 수 있도록 rcctl에서 로그를 얻는 가장 쉬운 방법은 do 를 수행하는 것입니다. rcctl -d start httpd이는 적어도 문제를 진단하는 데 도움이 됩니다.

답변3

Kusalananda가 지적했듯이 /etc/rc.conf에는 다음이 포함되어야 합니다.

httpd_flags=NO

/etc/rc.conf.local에는 다음이 포함됩니다.

httpd_flags=

httpd 또는 httpd가 아닌 항목을 활성화하여 비활성화합니다.

관련 정보