停止 apache2

今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。

使用命令:

ps -aux | grep tomcat

发现并没有8080端口的Tomcat进程。

使用命令:netstat –apn

 

 

 

 

Ubuntu - Apache2 - apache2: bad user name ${APACHE_RUN_USER}

在Ubuntu下sudo apt-get install apache2安装完Apache2以后,启动apache2的默认用户名是www-data, 属于www-data用户组

在shell中按如下输入

#apache2

会出现错误提示:

apache2: bad user name ${APACHE_RUN_USER}

 

解决方法:之前javaeye上有人的解决方法是直接改用户变量,apache2 启动会读取 /etc/apache2/apache2.conf 文件,里边用到了环境变量 APACHE_RUN_USER ;后者在 /etc/apache2/envars 里有定义 ,值为 www-data ,http://congfeng02.iteye.com/blog/435313 的方法是直接在 apache2.conf 的 user 那里用静态的值 www-data 。我在ubuntu 的论坛里找到了更好的方法以及发生该错误的原因 : http://ubuntuforums.org/showthread.php?t=804436 下面是这位仁兄的解释:

 

I believe this is because etc/init.d is not in your command path. Unlike Windows, Linux does not look in the "current" directory for commands. So, if you are in /etc/init.d you can type "sudo ./apache2 restart" which will tell it to look in the current directory with the "./" The script in /etc/init.d/apache2 explicitly reads in the environment variables before calling /usr/sbin/apache2. /usr/sbin/ is in yoour command path, so that is the one that runs when you just type "apache2 ..."

 

他的意思是命令行的目录问题,具体是

 

  -$ cd /etc/init.d/

  -$ sudo apache2 -k restart  会出现错误 ,这种情况下环境变量还没有读取

 

 -$ sudo /etc/init.d/apache2 -k restart

或者

-$ cd /etc/init.d/

-$ sudo ./apache2 -k restart 这两种命令都不会出现该错误

<think>好的,我现在需要解决用户提出的Apache服务无法停止的问题。首先,我要回顾一下用户提供的引用内容,看看是否有相关的信息。引用[1]、[3]、[4]提到的是Apache无法启动的问题,而引用[2]则是关于Apache停止响应的问题。虽然用户的问题是停止服务而非启动,但停止问题可能与进程管理或配置有关。 首先,用户可能尝试通过正常的方法停止Apache,比如使用服务管理器或者命令行命令,但遇到了问题。常见的无法停止的情况可能有进程卡死、权限问题或者配置文件错误。根据引用[2]中提到的检查进程状态和结束进程的方法,可能需要手动终止Apache进程。 接下来,我需要考虑不同的操作系统环境,比如Windows和Linux,因为停止服务的方法可能不同。在Windows中,用户可能使用服务管理器或任务管理器,而在Linux中,则可能使用systemctl或kill命令。需要分别给出步骤。 另外,用户提到的ApacheMonitor.exe(引用[3])在Windows下可能无法正确停止服务,这时候需要检查是否有残留进程或者服务被锁定。此外,配置文件错误可能导致服务无法正常关闭,因此建议检查配置文件是否有语法错误。 还需要考虑端口占用的问题,虽然这通常影响启动,但停止时如果其他进程占用了端口,可能导致Apache无法正确释放资源,不过可能性较低。不过引用[2]中提到检查网络连接,可能需要查看是否有外部因素干扰。 用户可能已经尝试过常规方法无效,所以需要提供强制终止进程的方法,比如使用taskkill或pkill命令。同时,提醒用户在修改配置前备份,避免进一步的问题。 最后,要确保回答结构清晰,分步骤说明,并引用相关的参考资料。特别是引用[2]中提到的检查进程状态和结束进程的方法,可以作为解决方案的一部分。同时,根据用户的历史问题,可能Apache在Windows环境下出现问题较多,需要针对该环境详细说明。</think>以下为解决Apache服务无法停止问题的分步方法: ### 一、常规操作流程 1. **使用系统服务管理器停止** - Windows: ```bash net stop Apache2.4 ``` 若提示`服务没有响应控制功能`,进入任务管理器手动结束`httpd.exe`进程[^2] - Linux: ```bash systemctl stop apache2 ``` 2. **强制终止进程** ```bash # Windows taskkill /F /IM httpd.exe # Linux pkill -9 apache2 ``` ### 二、故障排查路径 1. **检查进程残留** 通过`ps aux | grep apache`(Linux)或任务管理器(Windows)确认所有Apache相关进程是否彻底终止[^2] 2. **验证配置文件** 执行配置测试: ```bash apachectl configtest ``` 修复语法错误的配置文件可能解决服务僵死问题[^3] 3. **检查PID文件** 删除旧的进程锁文件: ```bash rm /var/run/apache2/apache2.pid ``` ### 三、特殊场景处理 1. **Windows服务注册异常** 重新注册服务: ```cmd httpd.exe -k uninstall httpd.exe -k install ``` 2. **端口占用冲突** 使用`netstat -ano`定位占用80/443端口的进程并终止
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值