在运行 OpenBSD 6.2 amd64 的 OpenBSD 机器上,无法使用 rcctl 启动 httpd:
# rcctl start httpd
httpd(failed)
Run Code Online (Sandbox Code Playgroud)
但是,当只输入 开始时httpd
,它会起作用;但这不是要走的路,我想。/var/log/messages
不包含任何提示,也不包含任何其他文件/var/log/
。
我/etc/httpd.conf
的比较简单:
server "default" {
listen on * port 80
}
Run Code Online (Sandbox Code Playgroud)
/var/www
存在并/var/www/htdocs
包含手动启动时提供的文件。在中指定“root”/etc/httpd.conf
无效。
我怎样才能httpd
被自动启用/启动rcctl
?
您的问题是httpd
守护进程在开始使用时被赋予了一个无效的命令行参数(字符串YES
)rcctl
,因此无法正常启动。
中XXX_flags
变量的唯一“特殊”值/etc/rc.conf.local
是两个字母 string NO
,它禁用相应的服务。这是大多数 OpenBSD 服务的默认值(请参阅/etc/rc.conf
,您永远不应修改)。
rcctl
以 root 身份启用服务,例如
# rcctl enable httpd
Run Code Online (Sandbox Code Playgroud)
在 的情况下httpd
,这将写入行
httpd_flags=
Run Code Online (Sandbox Code Playgroud)
into /etc/rc.conf.local
,这将启用该httpd
服务。
的值httpd_flags
将httpd
在启动时传递给实际的守护程序。例如,您可以使用以下命令读取替代配置文件
httpd_flags=-f /etc/httpd.conf.local
Run Code Online (Sandbox Code Playgroud)
rcctl
可以用来修改/etc/rc.conf.local
这样的:
# rcctl set httpd flags -f /etc/httpd.conf.local
Run Code Online (Sandbox Code Playgroud)
最好使用而rcctl
不是/etc/rc.conf.local
直接使用编辑器进行修改。
Mic*_*ser -2
正如 Kusalananda 指出的,/etc/rc.conf 必须包含
httpd_flags=NO
Run Code Online (Sandbox Code Playgroud)
和 /etc/rc.conf.local 包含
httpd_flags=
Run Code Online (Sandbox Code Playgroud)
启用 httpd 或不属于 httpd 的任何内容以使其禁用。
归档时间: |
|
查看次数: |
4201 次 |
最近记录: |