Apache 服务启动脚本

Apache的启动脚本
一般情况,如果是手动编译LAMP的话,一般情况下apache是没有启动脚本的,也就是说用户不能通过简单的
/etc/init.d/httpd start/stop/restart来启动/关闭/重新启动

其实在源码里已经有启动的脚本,我们要修改下即可,把Apache加入系统SysV服务中来。

在源码httpd-2.x.x/build/rpm中存在httpd.init
cp httpd.init /etc/init.d/httpd 
vim /etc/init.d/httpd 
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     
http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#        HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/httpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
RETVAL=0
# check for 1.3 configuration
check13 () {
CONFFILE=/usr/local/apache/conf/httpd.conf
GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
GONE="${GONE}AccessConfig|ResourceConfig)"
if grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then
  echo
  echo 1>&2 " Apache 1.3 configuration directives found"
  echo 1>&2 " please read @[email protected]/migration.html"
  failure "Apache 1.3 config directives test"
  echo
  exit 1
fi
}
# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure.  So we just do it the way init scripts
# are expected to behave here.
start() {
        echo -n $"Starting $prog: "
        check13 || exit 1
        daemon $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
        return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}
reload() {
echo -n $"Reloading $prog: "
check13 || exit 1
killproc $httpd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
  start)
start
;;
  stop)
stop
;;
  status)
        status $httpd
RETVAL=$?
;;
  restart)
stop
start
;;
  condrestart)
if [ -f /var/run/httpd.pid ] ; then
  stop
  start
fi
;;
  reload)
        reload
;;
  graceful|help|configtest|fullstatus)
$apachectl [email protected]
RETVAL=$?
;;
  *)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
注意文件中有三处主要的地方需要修改下的: 
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
CONFFILE=/usr/local/apache/conf/httpd.conf
请根据自己的情况更改相应的路径! 
然后
chmod +x /etc/init.d/httpd
chmod 700 /etc/init.d/httpd
设置httpd开机自启动
chkconfig --add httpd
chkconfig --level 345 httpd on
这样,启动、停止、重启Apache就可以用以下方式了: 
/etc/init.d/httpd start
/etc/init.d/httpd stop
/etc/init.d/httpd restart

时间: 2024-10-24 06:21:13

Apache 服务启动脚本的相关文章

Apache服务启动失败couldn't start errorlog process, unable to open logs

在某用户环境下,Apache服务启动失败,报错信息如下 couldn't start errorlog process unable to open logs Apache是我们的产品组件,未防止日志过大 我们使用了Apache自带的切割滚存日志的组件rotatelogs.exe 在httpd.conf配置如下: ErrorLog "|bin/rotatelogs.exe logs/%Y%m%d%H%M%S_error.log 30M" 只要屏蔽这个设置,就可以正常启动Apache,谷

logstash服务启动脚本

logstash服务启动脚本 最近在弄ELK,发现logstash没有sysv类型的服务启动脚本,于是按照网上一个老外提供的模板自己进行修改 #添加用户 useradd logstash -M -s /sbin/nologin mkdir /var/log/logstash/ chown -R logstash:logstash /var/log/logstash/ chown -R logstash:logstash /usr/local/logstash-2.0.0/ vi /etc/ini

利用shell开发rsync服务启动脚本

利用shell函数开发rsync服务启动脚本,之前的不够专业 #!/bin/bash #chkconfig: 2345  20 80                       #这两行加入kconfig #description: Saves and restores system entropy  pool source /etc/init.d/functions    #调用标准的函数库 aa() {   echo "plz one canshu"   exit 5 } bb()

nginx 源码编译安装并编写服务启动脚本

1. 使用xshell将nginx源码包上传到server 2. 安装依赖的软件包工具 zlib-devel?? pcre-devel?? gcc? gcc-c++ yum -y install zlib-devel pcere-devel gcc gcc-c++ 验证一下: 3. 指定nginx的运行用户 (创建nginx用户不使其登录系统.-M不创建宿主目录) [[email protected] ~]# useradd -s /sbin/nologin -M nginx 4. 编译安装ng

[shell脚本] mysql服务启动脚本

服务启动脚本(初始化.启动.登录) #!/bin/bash export PID=/usr/local/nestdb_master/bin/mysqld export PASSWORD=123456 function status() { ps -ef | grep -v 'grep'|grep ${PID} >/dev/null if [ $? -eq 0 ]; then echo "running" return 0 else echo "not running&q

HAProxy服务启动脚本

HAProxy是一个开源的.高性能的.基于TCP(第四层)和HTTP(第七层)应用的负载均衡软件,借助HAProxy可以快速.可靠地提供基于TCP和HTTP应用的负载均衡解决方案. 显著优点: 可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美: 最高可以同时维护40 000~50 000个并发连接,单位时间处理的最大请求数为20 000个,最大数据处理能力可达10Gbps 支持多于8种负载均衡算法,同时也支持session(会话)保持. 支持虚拟主机功能,这样实现web负载均衡更加灵活

linux 中apache服务启动相关分析

apache服务不能启动一般有二种可能: 1. 启动apache时出现 [[email protected] apache2]# /usr/local/apache2/bin/apachectl starthttpd: Could not reliably determine the server's fully qualified domain name, using 121.10.40.155 for ServerName 现在提供该问题的解决方法 1)进入apache配置文件的目录:(视个

mysql服务启动脚本详解

1 #!/bin/sh 2 # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB 3 # This file is public domain and comes with NO WARRANTY of any kind 4 5 # MySQL daemon start/stop script. 6 7 # Usually this is put in /etc/init.d (at lea

Nginx的编译安装及服务启动脚本

1.解决依赖关系 编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Libraries".同时,还需要专门安装pcre-devel包:# yum -y install pcre-devel 2.添加系统用户,实现与之运行nginx的服务进程 groupadd -r nginx useradd -r -g nginx nginx id nginx    查看新建的用户id 3.下载源码包上传编译安装 (www