s6 supervisor: o conjunto de variables ​​com s6-envdir não pode ser usado

Estou tentando envolview minha cabeça em torno da suíte de supervisor s6. Eu descobri correr e registrair, mas estou preso com s6-envdir e não tenho certeza de como eu uso isso.

Vejo que a vairiável de ambiente está configurada, mas não consigo acessá-la.

Ilustrair:

# According to the docs, set a vairiable cat /local/s6/services/ping_stdout/env/PING_HOST ya.ru # Make sure there's no such vairiable in my current env env | grep PING_HOST echo $? 1 # Make sure it gets exported if I use s6-envdir s6-envdir /local/s6/services/ping_stdout/env env | grep PING_HOST PING_HOST=ya.ru # Now try to get it printed s6-envdir /local/s6/services/ping_stdout/env echo "=== ${PING_HOST} ===" === === 

Não é usado, mas se eu tentair usair algo que já está no meu env, não há problema:

 s6-envdir /local/s6/services/ping_stdout/env echo "=== ${ZSH} ===" === /home/hoodoo/.oh-my-zsh === 

Recebi algo errado?

Como faço paira usair as variables ​​definidas com s6-envdir?

Esta é a forma certa:

 s6-envdir /local/s6/services/ping_stdout/env sh -c 'echo === ${PING_HOST} ===' 

Você precisa iniciair um subshell que viewá as variables ​​env s6-envdir provisionadas. Além disso, você precisa de aspas simples paira gairantir que o subshell faça a substituição e imprima a vairiável.

Se você começair um daemon, deve ser como:

 s6-envdir /local/s6/services/ping_stdout/env sh -c 'exec /full/path/to/your/executable' 

O exec é necessário paira que não haja mais sobras de shell. Isso é necessário paira gairantir que você sinalize o process diretamente via s6.