Von man 5 init
:
Arbeitsumgebung
Jeder Job wird mit der Umgebung anhand der Ereignisse oder Befehle ausgeführt, mit denen er gestartet wurde. Darüber hinaus können Sie Standardeinstellungen in der definieren
Job, der später überschrieben werden kann, und geben an, welche Umgebungsvariablen in die für den Job generierten Ereignisse exportiert werden.
Die spezielle Umgebungsvariable UPSTART_EVENTS enthält die Liste der Ereignisse, die den Job gestartet haben. Sie ist nicht vorhanden, wenn die
Job wurde manuell gestartet.
Darüber hinaus werden die Pre-Stop- und Post-Stop-Skripte mit der Umgebung der Ereignisse oder Befehle ausgeführt, die den Job gestoppt haben.
Die Umgebungsvariable UPSTART_STOP_EVENTS enthält die Liste der Ereignisse, die den Job gestoppt haben. Sie ist nicht vorhanden, wenn der Job ausgeführt wird
wurde manuell gestoppt.
Alle Jobs enthalten auch die Umgebungsvariablen UPSTART_JOB und UPSTART_INSTANCE, die den Namen des Jobs und der Instanz enthalten.
Diese werden meistens vom Dienstprogramm initctl (8) verwendet, um standardmäßig auf den Job zu reagieren, von dem aus die Befehle aufgerufen werden.
env KEY [= VALUE]
Definiert eine Standardumgebungsvariable, deren Wert durch das Ereignis oder den Befehl, mit dem der Job gestartet wird, überschrieben werden kann.
Wenn ´KEY = VALUE´ angegeben ist, erhält die Variable KEY den Wert VALUE. Wenn nur ´KEY´ angegeben ist, wird der Wert genommen
aus der eigenen Umgebung des init (8) -Dämons.
Exportschlüssel
Exportiert dazu den Wert einer Umgebungsvariablen in die Ereignisse start (7), start (7), stopp (7) und stop (7)
Job und auf alle daraus resultierenden Ereignisse (nicht nur auf den aktuellen Job).
Zusätzlich können Sie grep env /etc/init/*
sehen, wie verwendet wird
Dies ist meine Ausgabe:
/etc/init/container-detect.conf:env container
/etc/init/container-detect.conf:env LIBVIRT_LXC_UUID
/etc/init/container-detect.conf: # soll in der Umgebung von init nach "container" suchen.
/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 = "gestartet"
/etc/init/wait-for-state.conf:env TARGET_GOAL = "start"
Ein ausführliches Beispiel finden Sie in einigen dieser Skripte. Hier nginx.conf:
# nginx
Beschreibung "nginx http daemon"
Autor "Philipp Klose"
Start on (Dateisystem und Netzgerät-IFACE = lo)
auf Runlevel anhalten [! 2345]
env DAEMON = / usr / local / nginx / sbin / nginx
env PID = / usr / local / nginx / logs / nginx.pid
Gabel erwarten
Respawn
Respawn-Limit 10 5
#oom nie
Pre-Start-Skript
$ DAEMON -t
wenn [$? -ne 0]
dann beenden Sie $?
fi
Skript beenden
exec $ DAEMON