Назад | Перейти на главную страницу

«Остановка обслуживания лаком» на самом деле не останавливает лак

Я использую 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?

если вы хотите использовать service остановиться Varnish, вы также должны использовать тот же service начать Varnish также, а не запускать его вручную, как вы.

если вам нужно обновить скрипт, используйте либо whereis или which чтобы найти ваш двоичный файл, затем убедитесь, что ваш сценарий инициализации указывает на то же место, что и то, что вы нашли:

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

и это все, если вы используете RHEL6, как и для RHEL7 Varnish поставляется с 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 \
$ 

Кроме того, если в этом нет реальной необходимости, я не думаю, что это хорошая идея, чтобы они оба были установлены в одной системе.

Вам нужно проверить сценарий инициализации varnish и убедиться, что он указывает на правильный двоичный файл сервера и файл pid, которые фактически используются varnish 4.