De man 5 init
:
Ambiente de trabalho
Cada trabalho é executado com o ambiente a partir dos eventos ou comandos que o iniciaram. Além disso, você pode definir padrões no
tarefa que pode ser substituída posteriormente e especifica quais variáveis de ambiente são exportadas para os eventos gerados para a tarefa.
A variável de ambiente especial UPSTART_EVENTS contém a lista de eventos que iniciaram o trabalho; ela não estará presente se o
o trabalho foi iniciado manualmente.
Além disso, os scripts de pré-parada e pós-parada são executados com o ambiente dos eventos ou comandos que interromperam o trabalho.
A variável de ambiente UPSTART_STOP_EVENTS contém a lista de eventos que interromperam o trabalho, não estará presente se o trabalho
foi parado manualmente.
Todos os trabalhos também contêm as variáveis de ambiente UPSTART_JOB e UPSTART_INSTANCE, contendo o nome do trabalho e da instância.
Estes são usados principalmente pelo utilitário initctl (8) como padrão para atuar no trabalho a partir do qual os comandos são chamados.
env KEY [= VALUE]
Define uma variável de ambiente padrão, cujo valor pode ser substituído pelo evento ou comando que inicia o trabalho.
Se 'KEY = VALUE' for especificado, a variável KEY receberá o valor VALUE. Se apenas 'KEY' é dado, então o valor é obtido
do próprio ambiente do daemon init (8).
CHAVE DE EXPORTAÇÃO
Exporta o valor de uma variável de ambiente para os eventos de início (7), início (7), parada (7) e parada (7) desse
trabalho e a todos os eventos resultantes (não apenas aqueles relacionados ao trabalho atual).
Além disso, você pode fazer grep env /etc/init/*
para ver como é usado
Esta é a minha saída:
/etc/init/container-detect.conf:env container
/etc/init/container-detect.conf:env LIBVIRT_LXC_UUID
/etc/init/container-detect.conf: # deve verificar se há "container" no ambiente do init.
/etc/init/container-detect.conf: [-d / proc / vz] && [! -d / proc / bc] && container = openvz
/etc/init/mounted-debugfs.conf:env MOUNTPOINT = / sys / kernel / debug
/etc/init/mounted-dev.conf:env MOUNTPOINT = / dev
/etc/init/mounted-proc.conf:env MOUNTPOINT = / proc
/etc/init/mounted-tmp.conf:env MOUNTPOINT = / tmp
/etc/init/munin-node.conf:env DAEMON = / usr / sbin / munin-node
/etc/init/mysql.conf:env HOME = / etc / mysql
/etc/init/nginx.conf:env DAEMON = / usr / local / nginx / sbin / nginx
/etc/init/nginx.conf:env PID = / usr / local / nginx / logs / nginx.pid
/etc/init/procps.conf:env UPSTART_EVENTS =
/etc/init/rc.conf:env INIT_VERBOSE
/etc/init/rc-sysinit.conf:env DEFAULT_RUNLEVEL = 2
/etc/init/rc-sysinit.conf:env RUNLEVEL =
/etc/init/rc-sysinit.conf:env PREVLEVEL =
/etc/init/rc-sysinit.conf:env INIT_VERBOSE
/etc/init/wait-for-state.conf:env TIMEOUT = 30
/etc/init/wait-for-state.conf:env MANUAL_OVERRIDE = "N"
/etc/init/wait-for-state.conf:env WAIT_FOREVER = "N"
/etc/init/wait-for-state.conf:env WAIT_STATE = "iniciado"
/etc/init/wait-for-state.conf:env TARGET_GOAL = "start"
E, para um exemplo exaustivo, veja alguns desses scripts. Aqui nginx.conf:
# nginx
descrição "nginx http daemon"
autor "Philipp Klose"
iniciar (sistema de arquivos e IFACE do dispositivo de rede = lo)
parar no nível de execução [! 2345]
env DAEMON = / usr / local / nginx / sbin / nginx
env PID = / usr / local / nginx / logs / nginx.pid
esperar garfo
reaparecimento
limite de reaparecimento 10 5
#oom nunca
script de pré-início
$ DAEMON -t
se [$? -ne 0]
então saia de $?
fi
script final
exec $ DAEMON