我希望我的编译好的 apache2 服务器在我的 OpenSuse 12.3 服务器启动时运行。
我已按照如何让 Apache 在 Linux 上开机时启动,即:
创建文件 /etc/init.d/apache2
将其添加到服务中
chkconfig——添加apache2
我可以在 YaST 的运行级别管理器中看到它(不确定确切的名称,因为我的发行版是西班牙语的)
apache2 Yes*
我认为这意味着该服务配置为在启动时启动但在我检查时并未运行。
我的 /etc/init.d/apache2 的内容是:
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: apache2
# Default-Start: 3 5
# Description: Controlar el servidor apache2
### END INIT INFO
/home/servidor/apache/bin/apachectl $@
我尝试过更改文件的权限,通过 systemd 启用服务,并且几乎在网上找到的所有方法都无济于事:
systemctl start apache2.service
systemctl enable apache2.service
chkconfig apache2 on
任何帮助将不胜感激。
编辑
我的自定义服务终于起作用了。重启后我执行了
journalctl -n
并意识到虽然服务在启动完成后正确执行(通过终端中的手动输入),但运行它期间启动返回失败状态。
systemctl status apache2.service
显示套接字未打开的问题,因此我谷歌搜索了错误,并最终将 httpd.conf 从
Listen 192.168.9.69:80
到
Listen *:80
错误可能是因为当时没有分配 IP 地址?无论如何,问题解决了。
非常感谢您的关注和时间。
答案1
首先,/home/servidor/apache
对于服务器中的可执行文件来说,这不是一个合适的路径。使用/usr/local
层次结构来处理本地编译的包。这是默认选项,您不应该更改它。
对于初始化脚本,进行调整随你的发行版一起发布的满足您的需求。只需下载 RPM 并提取文件即可/etc/init.d/apache2
。