Lack DAEMON_OPTS Optionen Fehler
Bei der Verwendung von inline-C mit Lack habe ich nicht in der Lage zu bekommen /etc/varnish/default
um glücklich zu sein zu starten.
Ich getestet habe, inline-C mit Lack für zwei Dinge: GeoIP-Erkennung und Anti-Site-Scraping Funktionen.
Den DAEMON_OPTS immer beschwert, obwohl ich nach, was andere scheinen
um anzugeben, funktioniert einwandfrei.
Mein problem ist, dass diese Befehlszeile start-up arbeitet:
varnishd -f /etc/varnish/varnish-default.conf -s file,/var/lib/varnish/varnish_storage.bin,512M -T 127.0.0.1:2000 -a 0.0.0.0:8080 -p 'cc_command=exec cc -fpic -shared -Wl,-x -L/usr/include/libmemcached/memcached.h -lmemcached -o %o %s'
Aber Fehler aus, mit dem Versuch zu beginnen, die Standard-start-Skripte:
/etc/default/varnish hat dies in es:
DAEMON_OPTS="-a :8080 \
-T localhost:2000 \
-f /etc/varnish/varnish-default.conf \
-s file,/var/lib/varnish/varnish_storage.bin,512M \
-p 'cc_command=exec cc -fpic -shared -Wl,-x -L/usr/include/libmemcached/memcached.h -lmemcached -o %o %s'"
Der Fehler ist:
# /etc/init.d/varnish start
Starting HTTP accelerator: varnishd failed!
storage_file: filename: /var/lib/varnish/vbox.local/varnish_storage.bin size 512 MB.
Error:
Unknown parameter "'cc_command".
Wenn ich versuche, ändern Sie die Letzte Zeile zu:
-p cc_command='exec cc -fpic -shared -Wl,-x -L/usr/include/libmemcached/memcached.h -lmemcached -o %o %s'"
Es der Fehler ist jetzt:
# /etc/init.d/varnish start
Starting HTTP accelerator: varnishd failed!
storage_file: filename: /var/lib/varnish/vbox.local/varnish_storage.bin size 512 MB.
Error: Unknown storage method "hared"
Er versucht zu interpretieren, das "- shared", wie -s hared und "hared" ist kein Lagertyp.
Sowohl für GeoIP und die Anti-Site-Kratzen habe ich die genaue empfohlen daemon-Optionen
plus haben versucht, alle möglichen Variationen, wie das hinzufügen \ " und " aber keine Freude.
Hier ist ein link zu der Anleitung habe ich befolgt, funktioniert einwandfrei außer der DAEMON_OPTS Teil.
http://drcarter.info/2010/04/how-fighting-against-scraping-using-varnish-vcl-inline-c-memcached/
Ich bin mit Debian und den genauen DAEMON_OPTS wie in der Anleitung angegeben.
Kann jemand helfen mit einem Zeiger auf, was läuft hier falsch?
Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Selbst wenn Jacob wird wohl nie Lesen Sie diese, Besucher aus der Zukunft zu schätzen wissen könnte, was ich dabei bin zu schreiben.
Ich glaube, ich weiß was falsch ist, und es sieht aus wie ein Debian-spezifisches problem, zumindest überprüft auf Ubuntu 11.04 und Debian Squeeze.
Ich verfolgte die Ausführung von meinem
/etc/default/varnish
enthält die$DAEMON_OPTS
zum init-Skript.In dem init-Skript
/etc/init.d/varnish
, diestart_varnishd()
Funktion:Also habe ich es geändert auf drucken, um das volle
start-stop-daemon
Kommandozeile:Also ich hab einen command-line-echo auf STDOUT, und kopiert-eingefügt in meine Schale. Und, überraschung! Es arbeitete. WTF?
Wiederholt, um sicher zu sein. Ja, es funktioniert. Mmh. Könnte es sein, das andere bash/dash Ecke Fälle?
Lassen Sie uns versuchen Fütterung der start-stop-daemon, Kommandozeilen zu
bash
, und sehen, wie es reagiert:Ja, funktioniert es Prima, zumindest für meinen Fall.
Hier ist der relevante Teil meiner
/etc/default/varnish
:Habe ich Beiträge gesehen, wo jemand versucht hat, Sie zum umgehen dieses problem, indem die compile-Befehl in eine getrennte shell-Skript. Leider, das ändert nichts an der Tatsache, dass
start-stop-daemon
übergeben die$DAEMON_OPTS
var durchdash
, und dadurch entstellt Optionen.Wäre etwas entlang der Linien von:
Und dann die
compile.sh
Skript als:aber es funktioniert nicht, so dass nur patch-deine init-Skripte, und du bist gut zu gehen!
Hoffe, Sie finden diese Informationen nützlich.
Offensichtlich, Ihre startup-Skript interpretieren die DAEMON_OPTS ist nicht bereit für whitespace (auch innerhalb von einfachen Anführungszeichen). Bei meinem Fedora (15) die installation, die vorgeschlagene Lösung funktioniert gut, die Argumente erhalten, die nicht richtig interpretiert, weil die
"$*"
bash parameter übergeben wird, in /etc/init.d/varnish und /etc/init.d/Funktionen indaemon()
.Haben Sie Ihre Start-Skripte aus einem Paket oder hast du eigene Skripte?
Dies ist nicht direkt mit der Frage, aber Sie können finden, sich hier, wenn Sie arbeiten durch die Lack-Tutorial - Setzen Lack auf port 80.
Für die jüngsten Installationen von Lack auf Debian-Systemen die Konfiguration für varnishd startup-Optionen finden Sie im
/etc/systemd/system/multi-user.target.wants/varnish.service
. Die dokumentierten Weg, das zu ändern den port an, über/etc/default/varnish
existiert noch, ist aber nicht mehr funktionsfähig sind, es sei denn, Sie ändern Ihr system zu verwendeninit
Skripte anstattsystemd
.Nachdem Sie geändert haben Ihre Optionen in
/etc/systemd/system/multi-user.target.wants/varnish.service
, vergessen Sie nicht zu laufensystemctl daemon-reload
, die Katalog-die änderungen für die Ausführung des Programms.Können Sie versuchen, mit :-
DAEMON_OPTS="-a :8080 \
-T localhost:2000 \
-f /etc/varnish/varnish-Standard.conf \
-s Datei/var/lib/varnish/varnish_storage.bin,512M \
-p cc_command='exec cc -fpic -shared-Wl,-x -L/usr/include/libmemcached/memcached.h -lmemcached -o %o %s'"