Dari man 5 init
:
Lingkungan kerja
Setiap pekerjaan dijalankan dengan lingkungan dari peristiwa atau perintah yang memulai itu. Selain itu, Anda dapat menentukan default di
pekerjaan yang mungkin ditimpa kemudian dan tentukan variabel lingkungan mana yang diekspor ke acara yang dihasilkan untuk pekerjaan itu.
Variabel lingkungan UPSTART_EVENTS khusus berisi daftar peristiwa yang memulai pekerjaan, itu tidak akan ada jika
pekerjaan dimulai secara manual.
Selain itu, skrip pre-stop dan post-stop dijalankan dengan lingkungan peristiwa atau perintah yang menghentikan pekerjaan.
Variabel lingkungan UPSTART_STOP_EVENTS berisi daftar peristiwa yang menghentikan pekerjaan, itu tidak akan ada jika pekerjaan
dihentikan secara manual.
Semua pekerjaan juga mengandung variabel lingkungan UPSTART_JOB dan UPSTART_INSTANCE, yang berisi nama pekerjaan dan instance.
Ini sebagian besar digunakan oleh utilitas initctl (8) secara default untuk bertindak pada pekerjaan yang dipanggil dari perintah.
id KUNCI [= NILAI]
Menentukan variabel lingkungan default, yang nilainya dapat ditimpa oleh acara atau perintah yang memulai pekerjaan.
Jika ´KEY = VALUE´ ditentukan, variabel KEY diberi nilai VALUE. Jika hanya ´KEY´ yang diberikan, maka nilainya diambil
dari lingkungan daemon init (8) sendiri.
ekspor KUNCI
Mengekspor nilai variabel lingkungan ke awal (7), mulai (7), berhenti (7) dan berhenti (7) peristiwa untuk ini
pekerjaan dan semua acara yang dihasilkan (bukan hanya yang terkait dengan pekerjaan saat ini).
Selain itu, Anda dapat melakukan grep env /etc/init/*
untuk melihat bagaimana digunakan
Ini adalah output saya:
/etc/init/container-detect.conf:env wadah
/etc/init/container-detect.conf:env LIBVIRT_LXC_UUID
/etc/init/container-detect.conf: # adalah untuk memeriksa "container" di lingkungan 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 = "dimulai"
/etc/init/wait-for-state.conf:env TARGET_GOAL = "mulai"
Dan untuk contoh lengkap lihat beberapa skrip itu. Di sini nginx.conf:
# nginx
deskripsi "nginx http daemon"
penulis "Philipp Klose"
start on (filesystem dan net-device-up IFACE = lo)
berhenti di runlevel [! 2345]
env DAEMON = / usr / local / nginx / sbin / nginx
env PID = / usr / local / nginx / logs / nginx.pid
berharap garpu
respawn
batas respawn 10 5
#tidak pernah
skrip pra-mulai
$ DAEMON -t
jika [$? -ne 0]
lalu keluar $?
fi
akhiri skrip
exec $ DAEMON