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.local2文字の文字列です。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以外の項目を有効にして無効にします。

関連情報