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
デーモンに無効なコマンドライン引数(ひもYES
rcctl
) そのため、使用を開始すると正しく起動できません。
XXX_flags
変数の唯一の「特殊」値は、そのサービスを無効にする/etc/rc.conf.local
2文字の文字列です。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以外の項目を有効にして無効にします。