Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在ubuntu上停止apache服务器_Linux_Apache_Ubuntu_Amazon Ec2 - Fatal编程技术网

Linux 如何在ubuntu上停止apache服务器

Linux 如何在ubuntu上停止apache服务器,linux,apache,ubuntu,amazon-ec2,Linux,Apache,Ubuntu,Amazon Ec2,我正试图设置我的django项目,在EC2 Ubuntu实例上使用nginx作为其Web服务器,如下所示。作为其中的一部分,我需要安装/测试nginx是否在以下情况下处于活动状态: sudo apt-get install nginx sudo /etc/init.d/nginx start # start nginx 然后在80端口浏览我的亚马逊dns 当我这样做并导致错误时,我看到: mod_wsgi.listener_port '80' mod_wsgi.l

我正试图设置我的django项目,在EC2 Ubuntu实例上使用nginx作为其Web服务器,如下所示。作为其中的一部分,我需要安装/测试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服务器?

我一直都是这样做的

sudo apachectl stop

然而,这不会阻止它在启动时再次启动。此外,如果发现服务已停止,可能会有某种类型的管理者脚本重新启动服务。

有几件事需要注意。首先使用这样的命令找出端口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 sig发送给父级,如下所示

kill -TERM `cat /usr/local/apache2/logs/httpd.pid`
这将杀死所有子级,然后父级将退出。如果您关闭子httpd进程,您将看到新的httpd进程回来,因为父进程仍然处于活动状态

sudo service apache2 stop
更多信息,请参阅此
谢谢你的解释,这很有帮助。我确实尝试了lsof-I-P | grep:80,但没有创建任何输出。我仔细检查了一下,服务器正在运行。
sudo service apache2 stop