Лак не запустится как сервис, но хорошо работает из командной строки?

Мы пытаемся установить лак на Центе ОС 6.5 64, но не можем получить ее работающий как услуга. Какова могла быть причина следующей ошибки?

[root@server]# service varnish start
Starting Varnish Cache: 0
                                                           [FAILED]

Это работает прекрасное, это - тот же args как в DAEMON_OPTS в конфигурации.

varnishd -a :80 -T localhost:6082 -b localhost:8080 -u varnish -g varnish  -s file,/var/lib/varnish/varnish_storage.bin,1G

Я нашел некоторую информацию о том, как отладить на форуме лака, который дает мне это:

[root@server]# varnishd -C -f /etc/sysconfig/varnish
Message from VCC-compiler:
VCL version declaration missing
Update your VCL to Version 4 syntax, and add
    vcl 4.0;
on the first line the VCL files.
('input' Line 8 Pos 1)
NFILES=131072
######-------

Running VCC-compiler failed, exit 1

VCL compilation failed

Но мы не используем VCL итак, почему он жалуется на VCL?

Файл конфигурации лака:

# Configuration file for varnish
#
# /etc/init.d/varnish expects the variable $DAEMON_OPTS to be set from this
# shell script fragment.
#

# Maximum number of open files (for ulimit -n)
NFILES=131072

# Locked shared memory (for ulimit -l)
# Default log size is 82MB + header
MEMLOCK=82000

# Maximum number of threads (for ulimit -u)
NPROCS="unlimited"

# Maximum size of corefile (for ulimit -c). Default in Fedora is 0
# DAEMON_COREFILE_LIMIT="unlimited"

# Set this to 1 to make init script reload try to switch vcl without restart.
# To make this work, you need to set the following variables
# explicit: VARNISH_VCL_CONF, VARNISH_ADMIN_LISTEN_ADDRESS,
# VARNISH_ADMIN_LISTEN_PORT, VARNISH_SECRET_FILE, or in short,
# use Alternative 3, Advanced configuration, below
#RELOAD_VCL=1

# This file contains 4 alternatives, please use only one.

## Alternative 1, Minimal configuration, no VCL
#
# Listen on port 6081, administration on localhost:6082, and forward to
# content server on localhost:8080.  Use a fixed-size cache file.
#
DAEMON_OPTS="-a :80 -T localhost:6082 -b localhost:8080 -u varnish -g varnish  -s file,/var/lib/varnish/varnish_storage.bin,1G"


## Alternative 2, Configuration with VCL
#
# Listen on port 6081, administration on localhost:6082, and forward to
# one content server selected by the vcl file, based on the request.  Use a
# fixed-size cache file.
#
# DAEMON_OPTS="-a :80 -T localhost:6699 -f /etc/varnish/default.vcl -u varnish -g varnish -S /etc/varnish/secret -s malloc,1G"


## Alternative 3, Advanced configuration
#
# See varnishd(1) for more information.
#
# # Main configuration file. You probably want to change it :)
#VARNISH_VCL_CONF=/etc/varnish/default.vcl
#
# # Default address and port to bind to
# # Blank address means all IPv4 and IPv6 interfaces, otherwise specify
# # a host name, an IPv4 dotted quad, or an IPv6 address in brackets.
# VARNISH_LISTEN_ADDRESS=
#VARNISH_LISTEN_PORT=80
#
# # Telnet admin interface listen address and port
#VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1
#VARNISH_ADMIN_LISTEN_PORT=6082
#
# # Shared secret file for admin interface
#VARNISH_SECRET_FILE=/etc/varnish/secret
#
# # The minimum number of worker threads to start
#VARNISH_MIN_THREADS=50
#
# # The Maximum number of worker threads to start
#VARNISH_MAX_THREADS=1000
#
# # Idle timeout for worker threads
#VARNISH_THREAD_TIMEOUT=120
#
# # Cache file size: in bytes, optionally using k / M / G / T suffix,
# # or in percentage of available disk space using the % suffix.
#VARNISH_STORAGE_SIZE=256M
#
# # Backend storage specification
#VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"
#
# # Default TTL used when the backend does not specify one
VARNISH_TTL=120
#
# # DAEMON_OPTS is used by the init script.  If you add or remove options, make
# # sure you update this section, too.
#DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
#             -f ${VARNISH_VCL_CONF} \
#             -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
#             -t ${VARNISH_TTL} \
#             -p thread_pool_min=${VARNISH_MIN_THREADS} \
#             -p thread_pool_max=${VARNISH_MAX_THREADS} \
#             -p thread_pool_timeout=${VARNISH_THREAD_TIMEOUT} \
#             -u varnish -g varnish \
#             -S ${VARNISH_SECRET_FILE} \
#             -s ${VARNISH_STORAGE}"
#


## Alternative 4, Do It Yourself. See varnishd(1) for more information.
#
# DAEMON_OPTS=""

Примечание: /var/log/varnish также пусто и не дает ключа к разгадке.

ОБНОВЛЕНИЕ:

[root@server]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 54665
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 54665
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

ОБНОВЛЕНИЕ 2:

Лак запускается, если я делаю это:

bash -x /etc/init.d/varnish start

но нет

/etc/init.d/varnish start

Что имеет значение?

2
задан 23 July 2014 в 18:01
4 ответа

Выполните bash -x /etc/init.d/varnish restart, чтобы найти, с какими опциями лак действительно пытается начать, а затем попробуйте запустить их на cli.

.
0
ответ дан 3 December 2019 в 12:52

в предположении, что вы сделали NOT изменение вашего входа . Скрипт Varnish (попробуйте md5 it)

[root@6svprx01 ~]# head -1 /etc/init.d/varnish
#! /bin/sh
[root@6svprx01 ~]# rpm -q varnish
varnish-3.0.6-1.el5.centos.x86_64
[root@6svprx01 ~]# md5sum /etc/init.d/varnish
a69b3b55a8d5da5b9b9c24a62774aa80  /etc/init.d/varnish
[root@6svprx01 ~]# service varnish 
Usage: /etc/init.d/varnish {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
[root@6svprx01 ~]# service varnish status
varnishd (pid  6188) is running...
[root@6svprx01 ~]# 

также:

varnishd -C -f /etc/sysconfig/varnish

некорректен, он должен быть:

varnishd -C -f /etc/varnish/default. vcl

0
ответ дан 3 December 2019 в 12:52

Я столкнулся с той же проблемой, я нашел причину.

Это вызвано SELinux, вы можете временно отключить его с помощью echo 0> / selinux / enforce , но это не рекомендуется, и вам следует создать файл политики для его запуска. Я могу вернуться к этому, когда у меня будет немного свободного времени.

1
ответ дан 3 December 2019 в 12:52

У меня была аналогичная проблема, и я обнаружил, что с Ubuntu (я знаю, что это CentOs но я думаю, что это все еще может быть полезно) мне нужно было настроить запуск службы в /etc/systemd/system/varnish.service.d/override.conf , как показано ниже:

ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,1024m

Это было в место установки конфигураций демона / etc / default / varnish , которые, похоже, у меня не работали.

0
ответ дан 3 December 2019 в 12:52

Теги

Похожие вопросы