- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Nginx 的新手,在这里遇到了一些麻烦。
我正在使用 Mac 操作系统 和 nginx version: nginx/1.17.7
.
第一次下载 Nginx 是前段时间。那个时候,一切都运行得很完美。然后当我玩弄nginx.conf
,我以某种方式把它搞砸了。所以,当我今天重新开始学习 Nginx 时,我删除了我之前拥有的所有文件,并通过 homebrew 重新安装了它。然后我希望有人可以帮助我解决的问题突然出现。
初始化 Nginx 后,出现此错误
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] still could not bind()
processes
那是在使用端口。顺便说一句,即使我有这个错误,我也可以访问页面
localhost:8080
,但它是
403 Forbidden page
.然后我在
Terminal
上尝试了一个命令:
ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
(
source )
PID PPID %CPU VSZ WCHAN COMMAND
21827 1 0.0 4291640 - nginx: master process nginx
21828 21827 0.0 4301348 - nginx: worker process
21831 93689 0.0 4267768 - egrep (nginx|PID)
kill -9 <PID>
杀死所有这些人。 , 即
kill -9 21827
,
kill -9 21828
, 和
kill -9 21831
.
-bash: kill: (21827) - Operation not permitted
.我只是想也许
sudo
可以解决这个问题,所以我尝试了
sudo kill -9 21827
.而这一次
成功了 .我杀死了所有进程,但第三个进程除外。当我尝试
sudo kill -9 21831
, 我收到了
No such process
.然后我发现是因为
PID
此进程的名称是
一直在变出于某种原因,所以如果我没有在那个确切的时刻捕捉到进程的确切 PID,我就无法杀死它。然后我就这样把它留在了那里。
nginx
在
Terminal
.这是输出:
nginx: [emerg] open() "/usr/local/var/run/nginx.pid" failed (13: Permission denied)
sudo nginx -s stop && sudo nginx
(
source ) 但这没有用。已举报
nginx: [alert] kill(21827, 15) failed (3: No such process)
.所以我尝试了同一来源提供的另一个答案:
brew services list
然后
brew services start nginx
.
nginx: [emerg] open() "/usr/local/var/run/nginx.pid" failed (13: Permission denied)
.
ps aux | grep nginx
.在我杀死进程之前,这给了我三个进程。在所有这些之后,我得到了
apple 22922 0.0 0.0 4267768 832 s003 S+ 3:09AM 0:00.00 grep nginx
最佳答案
这里发生了很多事情。首先,Mac OS 是 Linux 的近亲。许多 Linux 解决方案/命令将在您的 Mac 上本地运行。那些没有的通常可以修改以使其工作。在某些情况下,您可能需要安装 Mac OS 中默认未安装的其他命令行工具。
二、ps
是“进程状态”的缩写。顾名思义,它是一个报告在您的机器上运行的进程状态的命令(您的权限允许您查看)。使用 kill
当然是可能的,有时可能是必要的。终止进程。但是,如果您不知道自己在做什么,我不会推荐它。正如您所发现的,根据您的操作系统权限/设置,您可能需要使用 sudo
覆盖。依靠 nginx 命令来启动和停止正在运行的 nginx 服务器可能更好。这将做的一件事是允许这些操作“优雅地”执行,也就是说“干净地”和“没有意外的副作用”。稍后再谈。
您的 ps
中第三个进程的 PID 不断变化的原因输出是因为该进程是 egrep
过程本身被报告。每次运行命令时,都会出现一个新的 egrep
命令被执行并获得它自己 Shiny 的新 PID。
在您的 ps
中需要注意的另一件事输出:有 2 nginx
过程。一个是师傅,一个是 worker 。只要主进程在运行,您就可以一遍又一遍地杀死工作进程,主进程将产生一个新的工作进程(具有另一个新的 PID)。文档说“主进程的主要目的是读取和评估配置文件,以及维护工作进程。”
现在,听起来另一个进程已经在使用端口 8080。您可以通过运行以下命令来发现该进程是什么:lsof -nPL -iTCP:8080
取决于什么lsof
命令返回,您可以使用报告的 PID
退出程序或终止进程。 .如果由于某种原因,您不能或不想终止违规进程,那么您将不得不更改 nginx
的配置。 .
正如错误消息所暗示的那样,您现在遇到了文件 /usr/local/var/run/nginx.pid
的权限问题。正在阻止 nginx
从开始。该文件包含提供给 nginx
的 PID。启动时的过程。当您发出命令 nginx -s stop
,它正在尝试从该文件中读取先前分配的 PID。当它不能时,它会失败并显示您看到的错误消息。
使用 kill
的意外副作用终止 nginx
过程是他们没有机会自己清理。他们在关机时做的一件事是删除 nginx.pid
包含先前分配的 PID 的文件。好消息是,如果该文件不存在,那么 nginx
将创建一个新的。所以你所要做的就是运行 sudo rm /usr/local/var/run/nginx.pid
然后运行 nginx
.
关于macos - nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use) 在 mac 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59568777/
I'm getting this error after running sudo nginx command我在运行sudo nginx命令后收到此错误 nginx: [emerg] bin
我在我的一个子域上生成了 SSL 证书。然后我尝试 delete/revoke证书使用命令certbot delete .弹出一个小终端菜单,询问我要删除什么证书。我删除了我想删除的那个。现在,当运行
我正在设置新服务器。我选择的 Web 服务器是 NGINX。我想添加域名(例如 example.com)作为虚拟主机。我已经有另外两个域,它工作正常,但是当我尝试添加上述域并启动服务器时,它给了我:
我正在尝试通过集群中的Nginx容器将请求反向代理到共享相同覆盖网络的独立容器。 tldr;我收到以下错误: 2018/03/15 19:00:35 [emerg] 1#1: invalid host
我已经重新配置了 nginx,但无法使用以下配置重新启动它: server { listen 80; server_name www.example.com; return 3
我第一次尝试在 EC2 上使用 Rubber 进行设置(complete_passenger_nginx_postgresql)。我更改了配置文件中的一系列设置,使其适用于不同的 AMI(Ubuntu
我正在为 RHEL 7 中的反向代理配置 nginx,这是我的配置。 server { listen 8080; server_name localhost.com; location
我正在尝试在 Digital Ocean 的 Droplet 上的 Ubuntu 上配置 Nginx 服务器。 当我运行 sudo nginx -t 时,出现错误 [emerg] unknown "r
当我尝试重新启动Nginx并在控制台中写入此命令时 nginx -t 我有一个错误: nginx: [emerg] a duplicate default server for 0.0.0.0:80
如何创建 HTML 链接到紧急号码,如 911或 112 ? RFC says The phone number can be represented in either global or loca
在X-WAF部署中,您需要创建新的nginx配置文件。但是在测试nginx配置时,发现错误,nginx无法启动。 我指的是http://blog.51cto.com/14071176/2318054
我正在尝试在 nginx 中重写 url,下面是我的示例代码: server { listen 80; server_name example.com; root /ful
这是我的第一个问题!在这个网站上:Is there a kdevelop version that i can install on windows?在其中一个答案中,需要“运行 emerge qt、
由于/etc/fstab 中有错误的代码行,我无法启动我的 Linux 机器。目前我的机器将尝试启动并无限循环消息“欢迎使用紧急模式!...”。我无法进入控制台或登录。 在启动屏幕上点击退出并进入救援
我正在构建一个 Rails 应用程序,我正在设置应用程序以在 docker 上部署,并使用 Nginx 作为网络服务器。但是,我在为应用程序设置 Nginx 和 Docker 时遇到问题。 我在运行
当我点击其中一个建议时,下拉列表只消失,但听不到鼠标点击事件, 鼠标焦点和键盘事件等其他事件完美运行。 在我的输入代码结构中,组件通常位于另一个组件内,如下面的部分代码所示: 父组件 class Si
最近为了制作一个Docker镜像,在本地电脑上通过虚拟机安装了CentOS,顺便通过宝塔面板安装了阿里系的WEB环境。安装好以后Nginx始终无法启动,报错:nginx: [emerg] inval
几周来,我一直在使用 Android 模拟器、命令行和 Intellij,运行 ApiDemos 和我自己的应用程序,没有任何问题。 现在,没有任何异常或消息表明模拟器将只运行紧急调用应用程序的原因,
我开发了一个应用程序来跟踪用户位置(后台模式)并获得政府警察服务的用户许可。 根据苹果人机界面指南: 4.3 Apps that use location-based APIs for emergen
我在 mac OSX Snow Leopard 上安装了 Git,我尝试编辑我的 merge 和差异工具以使用 kdiff3 而不是 emerge。 但是当我尝试使用它时,它不会启动 kdiff 的
我是一名优秀的程序员,十分优秀!