2015-05-01 2 views
0

Я хотел бы добавить протоколирование varnishlog к этому buildpack: https://github.com/chregu/cf-varnish-buildpackКак добавить дополнительный процесс к [Cloud Foundry] buildpacks?

Как я могу добавить второй процесс должен быть запущен, когда buildpack начинает регистрировать ошибки ЛАК на диск/STDERR?

ответ

1

Встроенный пакет может создавать фоновые процессы. В случае с buildpack, на который вы указали, файл bin/release указывает, что он запускает boot.sh при запуске. Поэтому вы можете просто изменить boot.sh, чтобы начать все, что хотите, в фоновом режиме с помощью обычного синтаксиса оболочки, добавляющего & к команде. Например:

export APP_ROOT=$HOME 
export LD_LIBRARY_PATH=$APP_ROOT/varnish/lib:$LD_LIBRARY_PATH 
if [ -z "$VARNISH_MEMORY_LIMIT" ]; then 
    VARNISH_MEMORY_LIMIT=$MEMORY_LIMIT 
fi 

# Start some logging process in the background 
start_my_logging.sh & 

# check varnish config 
$APP_ROOT/varnish/sbin/varnishd -C -f $APP_ROOT/varnish/etc/varnish/default.vcl 2>&1 

# TODO, Make MEMORY_LIMIT adjustable, this now comes from CF itself 
exec $APP_ROOT/varnish/sbin/varnishd -n /home/vcap/tmp/varnish -F -f $APP_ROOT/varnish/etc/varnish/default.vcl -a 0.0.0.0:$VCAP_APP_PORT -t 120 -w 50,1000,120 -s malloc,$VARNISH_MEMORY_LIMIT -T 127.0.0.1:6082 -p http_resp_hdr_len=32768 2>&1 
# ------------------------------------------------------------------------------------------------ 
+0

Это работает для создания другого процесса, но, к моему стыду, я не могу работать, как получить сценарий регистрации, чтобы называться ПОСЛЕ начала процесса varnishd (я думаю, что вам нужен запущенный процесс varnishd прежде чем вы сможете вызывать ведение журнала) –

+0

Было бы лучше определить полностью отдельный процесс/скрипт, чтобы начать ведение журнала, вместо того, чтобы вешать регистрацию с главного сценария запуска лака? –

+0

Вы можете использовать подоболочку, которая немного спит перед началом ведения журнала, например '(sleep 10; start_my_logging.sh) &'. Вы можете сделать его более изощренным, если знаете какой-то внешний знак, который он может проверить, поскольку это будет означать, что основной процесс готов разрешить ему работать. –

Смежные вопросы