【问题标题】:What's the difference between starting nginx with command "nginx", "service start nginx" and "systemctl nginx start"?使用命令“nginx”、“service start nginx”和“systemctl nginx start”启动 nginx 有什么区别?
【发布时间】:2019-05-29 17:55:21
【问题描述】:

我注意到,当我使用 ubuntu 命令“nginx”启动 nginx 并执行 systemctl status nginx 时。它表明 systemctl 已禁用。此外,如果我首先使用命令 systemctl start nginx 启动 nginx,然后尝试使用命令 nginx 启动 nginx,它会检查端口的可用性,然后说 nginx:[emerg] 仍然无法绑定()。所以我认为必须有一个differene和他们的目的。当我使用命令 nginx strt nginx 时,停止 nginx 的唯一方法是使用 killlall nginx 或 kill -9 (进程 ID)强制或清除端口。所以我很确定它们之间存在一些差异。

【问题讨论】:

  • 不仅被 nginx 弄糊涂了。我认为您可能对 systemctl 和本机命令脚本可以管理的所有进程感到困惑。你应该对systemctl有所了解,不要专注于nginx。
  • 谢谢它帮了我很多,但仍然不清楚为什么可以使用这两个命令单独启动一个进程。这就是我问这个问题的主要原因是第一位,如果使用了 nginx 和 systemctl 启动 nginx 然后它还尝试使用其他命令启动同一个恶魔,为什么?谢谢回复

标签: nginx nginx-location nginx-reverse-proxy


【解决方案1】:

您提供的示例之间的区别在于进程的启动方式。

运行命令nginx 将启动应用程序并等待您的用户操作将其停止。

systemctl 或 service 命令几乎相同,运行 service nginx start 或 systemctl start nginx 将在后台启动一个运行 Nginx 守护进程的服务。

您还可以使用它来执行service nginx restart 或systemctl restart nginx 来重新启动服务,甚至可以使用service nginx reload / systemctl reload nginx 来重新加载配置而不完全停止Nginx 服务器。

nginx和systemctl start nginx不能同时做是因为nginx配置已经监听了80端口,不能同时监听一个IP地址的同一个端口。

您还可以通过运行 systemctl enable nginx 强制 nginx 服务在启动时启动,这就是您的 systemctl status nginx 返回“已禁用”的原因。

希望这是有道理的。

【讨论】:

  • 是的,它确实帮了很多忙。 Thnks你能不能也请回答为什么nginx已经用命令nginx运行了,为什么可以用命令systemctl start nginx来启动它?我的意思是如果它已经在运行,为什么系统甚至会尝试重新启动?
  • 这是因为计算机只会执行它被告知要做的任务。所以如果你告诉它启动 nginx,它会为你启动 nginx,一旦绑定端口失败就会报错。
  • 也许没有什么要检查的,因为执行程序的命令运行了,检查程序是否可以运行,因此它实际上尝试运行程序。所以现在我很清楚了。谢谢
【解决方案2】:

service 命令只是一个简单的脚本,它基本上抽象地选择了底层的初始化系统(upstart、systemmd、/etc/init.d 或 systemctl)。

因为它是一个非常简洁的脚本,它只支持非常有限的一组操作(开始|停止|重新加载..)。

但是,如果你真的想要执行额外的操作,你需要在这种情况下使用实际的 init 系统 systemctl

一个恰当的例子是在启动时使用 systemctl sudo systemctl enable the-name-of-service 启动服务,而使用 service 是不可能的

【讨论】:

  • Thnks 但是为什么可以用两个命令启动同一个恶魔?这意味着当我尝试使用命令 nginx 启动 nginx 时,也可以使用 systemctl start nginx 启动一个预运行的守护程序。当然,由于端口不是免费的,它不起作用,但它仍然让我质疑。谢谢回复
猜你喜欢
  • 1970-01-01
  • 2015-03-01
  • 2016-11-03
  • 2020-09-08
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
相关资源
最近更新 更多