命令 'sudo gearmand -d' 和 'sudo service gearman-job-server start' 有什么区别?

What's the difference between the commands 'sudo gearmand -d' and 'sudo service gearman-job-server start'?

我在学习gearman,发现gearman有两种启动方式:

有什么区别?

什么时候使用它们?

感谢任何反馈!

好吧,这不是 gearmand 特有的,但它适用于几乎所有 linux daemons/services。

program/service可以通过不同的方式调用。直接从终端,通过 /etc 中的脚本和其他方式。我假设您知道 sudo 的作用。

# gearmand -d

您正在直接调用 gearmand 可执行文件。 shell 知道可执行文件在哪里,因为设置了 PATH。您可以使用 "whereis gearmand" 或使用 find 找到它的位置。 这是调用 application/service.

的直接方法

"daemon" 是后台进程。 gearman 的“-d”参数以守护进程模式(在后台)启动它。

Advantage/s:

  1. 如果您在同一台机器上编译多个版本的服务,在这种情况下 "gearman",您可以单独调用它们而无需 installing/reinstalling。
  2. 有时安装不工作或服务可能不支持启动脚本等

Disadvantage/s:

  1. 可能不会像标准脚本/命令那样提供统一的输出。
  2. 您可能需要知道文件的位置。

# service gearman-job-server start

调用脚本 service,它通常查看目录“/etc/init.d”。如果您想找到服务在您的 linux 发行版中搜索服务的位置,您可以查找它。

搜索服务脚本所在位置"whereis service"然后用"less path_to_service"或直接用"whereis service | cut -d "“-f2 | xargs less”在less中打开就可以看到服务文件。

如今,服务脚本在 linux 中标准化了脚本的调用方式。

$服务service_name开始

service_name 开始

$服务service_name开始

service_name 已经 运行

$服务service_name停止

service_name 已停止。

$服务service_name停止

service_name 不是 运行。

这提供了一种启动或停止所有服务的统一方式。