修改配置

修改配置

我使用的是 Ubuntu 服务器 14.04。在我进行修改/etc/init.d/gearman-job-server并输入后:

# sudo service gearman-job-server restart

它忽略我所做的修改。但随后我输入:

# /etc/init.d/gearman-job-server restart

一切正常。 Ubuntu 14.04 中的这些脚本现在是否缓存在某处?

答案1

在尝试更改侦听地址的 Ubuntu 15.10 上遇到类似问题后,我发现传统的 init 脚本被忽略,并且 systemd 配置被硬编码为仅侦听 127.0.0.1。

解决办法是修改systemd配置,重新加载,然后重启服务。

修改配置

配置可以直接修改或通过覆盖文件修改。

通过直接修改

systemd 服务配置位于/lib/systemd/system/gearman-job-server.service。编辑此文件并更改 ExecStart 行以包含您需要的参数。

通过覆盖文件

创建文件/etc/systemd/system/gearman-job-server.service.d/gearman-job-server.conf

将以下配置放入文件中以覆盖 ExecStart 命令。

[Service]
ExecStart=
ExecStart=/usr/sbin/gearmand --pid-file=/run/gearman/server.pid --log-file=/var/log/gearman-job-server/gearman.log

ExecStart=需要空行来删除原始命令行。如果没有它,系统将尝试执行原始的和自定义的。

重新加载配置

运行以下命令,以便 systemd 重新加载服务配置

/bin/systemctl daemon-reload

重新启动服务

service gearman-job-server restart

答案2

当使用sudo serviceUbuntu 12.04 和 Ubuntu 14.04 时,首先会在 (upstart) 中查找 init 脚本/etc/init,然后在 中查找/etc/init.d,所以它首先会找到这个脚本:

/etc/init/gearman-job-server.conf

进而

/etc/init.d/gearman-job-server

顺便说一句,gearman-job-server.conf 中也存在错误,已描述这里

相关内容