【问题标题】:How to stop an apache server on ubuntu如何在 ubuntu 上停止 apache 服务器
【发布时间】:2015-05-04 13:33:39
【问题描述】:

我正在尝试设置我的 django 项目以在http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html 之后的 EC2 Ubuntu 实例上使用 nginx 作为其网络服务器。作为其中的一部分,我需要安装/测试 nginx 是否处于活动状态:

sudo apt-get install nginx
sudo /etc/init.d/nginx start    # start nginx

然后在 80 端口访问我的亚马逊 dns。

当我这样做并导致错误时,我看到:

mod_wsgi.listener_port      

'80'    

mod_wsgi.listener_host      

''    

CONTEXT_DOCUMENT_ROOT       

'/var/www/html'    

SERVER_SOFTWARE       

'Apache/2.4.7 (Ubuntu)'    

SCRIPT_NAME       

u''    

mod_wsgi.enable_sendfile      

'0'    

mod_wsgi.handler_script       

''    

SERVER_SIGNATURE      

'<address>Apache/2.4.7 (Ubuntu) Server at ec2-**-**.us-west-2.compute.amazonaws.com Port 80</address>\n'    

REQUEST_METHOD      

'GET'    

PATH_INFO       

u'/index'    

SERVER_PROTOCOL       

'HTTP/1.1'    

QUERY_STRING      

''    

HTTP_USER_AGENT       

'Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0'    

HTTP_CONNECTION       

'keep-alive'    

SERVER_NAME       

'ec2-**-**.us-west-2.compute.amazonaws.com'    

REMOTE_ADDR       

'107.0.193.131'    

mod_wsgi.request_handler      

'wsgi-script'    

wsgi.url_scheme       

'http'    

PATH_TRANSLATED       

'/home/ubuntu/tproxy/tp/tp/wsgi.py/index'    

SERVER_PORT       

'80'    

wsgi.multiprocess       

True    

mod_wsgi.input_chunked      

'0'    

SERVER_ADDR       

'172.31.28.196'    

DOCUMENT_ROOT       

'/var/www/html'    

mod_wsgi.process_group      

''    

SCRIPT_FILENAME       

'/home/ubuntu/tproxy/tp/tp/wsgi.py'    

SERVER_ADMIN      

'webmaster@localhost'    

wsgi.input      

<mod_wsgi.Input object at 0x7fdd5e046af0>    

HTTP_HOST       

'ec2-**-**.us-west-2.compute.amazonaws.com'

显然是一个正在运行的 apache 2 服务器。关注http://httpd.apache.org/docs/2.2/stopping.html,我试过了:

(env1)ubuntu@ip-172-31-28-196:~/tproxy/tp$ apachectl -k stop
httpd (pid 1132?) not running

这不起作用。如何关闭 apache 服务器?

【问题讨论】:

    标签: linux apache ubuntu amazon-ec2


    【解决方案1】:
    sudo service apache2 stop
    

    更多信息请参考link 谢谢

    【讨论】:

      【解决方案2】:

      有几件事你应该看看。首先使用这样的命令找出端口 80 上实际运行的内容。

      lsof -i -P | grep :80
      

      在端口 80 上运行的任何东西都会返回一个看起来像这样的 PID

      httpd  1046  apache2 10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:80 (LISTEN)
      

      这就是你想要杀死的东西。

      最后,如果所有其他方法都失败了,您可以尝试使用 pidFile 方法向父级发送 Kill TERM 信号,如下所示。

      kill -TERM `cat /usr/local/apache2/logs/httpd.pid`
      

      这将杀死所有孩子,然后父母将退出。如果您终止子 httpd 进程,您将看到新的 httpd 进程回来,因为父进程仍然处于活动状态。

      【讨论】:

      • 感谢您的解释,它很有帮助。我确实尝试过 lsof -i -P | grep :80 但没有创建输出。我仔细检查了一下,服务器正在运行。
      【解决方案3】:

      我一直这样做

      sudo apachectl stop
      

      但这不会阻止它在启动时重新启动。如果发现服务已停止,也可能有某种主管脚本会重新启动服务。

      【讨论】:

        猜你喜欢
        • 2015-11-18
        • 1970-01-01
        • 2018-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多