“service varnish stop”实际上并没有停止Varnish

“service varnish stop”实际上并没有停止Varnish

我正在运行 Amazon Linux。

我最初在这个盒子上安装了 Varnish 3,但现在安装了 Varnish 4。

sudo varnishd -a 0.0.0.0:80 -f /etc/varnish/default.vcl 

...可以正常启动 Varnish 4,并且

pkill varnishd

...可以很好地杀死它。

service varnish stop

似乎控制 Varnish 3,而不是 Varnish 4。我很困惑!

这是为什么?我该怎么做才能让这个盒子忘记 Varnish 3?

答案1

如果您想使用service它来停止Varnish,您也应该使用相同的service来启动Varnish,而不是像您一样手动运行它。

如果您需要更新脚本,请使用whereiswhich查找二进制文件的位置,然后确保您的初始化脚本指向与您找到的位置相同的位置:

# grep ^exec /etc/init.d/varnish
exec="/usr/sbin/varnishd"
# 

所有这些都假设您使用的是 RHEL6,因为 RHEL7Varnish附带systemd脚本:

$ rpm -q varnish
varnish-4.0.3-3.el7.x86_64
$ grep ^ExecStart /usr/lib/systemd/system/varnish.service 
ExecStartPre=/usr/sbin/varnishd -C -f $VARNISH_VCL_CONF
ExecStart=/usr/sbin/varnishd \
$ 

此外,除非有实际需要,否则我认为将它们同时安装在同一系统上并不是一个好主意。

答案2

您需要检查 varnish init 脚本并确保它指向 varnish 4 实际使用的正确的服务器二进制文件和 pid 文件。

相关内容