首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用命令" nginx“、"service start nginx”和"systemctl nginx start“启动nginx有什么区别?

使用命令" nginx“、"service start nginx”和"systemctl nginx start“启动nginx有什么区别?
EN

Stack Overflow用户
提问于 2019-01-03 06:23:24
回答 2查看 2.6K关注 0票数 4

我注意到,当我用ubuntu命令" nginx“启动nginx时,我会执行systemctl状态nginx。它显示了systemctl是禁用的。此外,如果我首先用命令systemctl启动nginx,然后尝试用命令nginx启动nginx,它会检查端口的可用性,然后说nginx: emerg仍然无法绑定()。所以我想一定有不同的目的和目的。当我用命令nginx来命令nginx时,阻止nginx的唯一方法是使用杀灭nginx或杀害-9 (进程id)或清除端口。所以我很肯定他们之间有一些不同。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-03 06:35:22

您提供的示例之间的区别在于进程是如何启动的。

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

systemctlservice命令几乎是一样的,运行service nginx startsystemctl start nginx将在后台启动服务,运行Nginx守护进程。

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

不能同时执行nginxsystemctl start nginx的原因是由于nginx配置已经侦听端口80,并且不能同时侦听单个IP地址上的同一个端口。

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

希望这是有意义的。

票数 5
EN

Stack Overflow用户

发布于 2019-01-03 06:40:24

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

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

但是,如果您实际上想要执行附加操作,则需要使用实际的init系统(在本例中为systemctl )。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54017277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档