Jawaban:
Saya akhirnya mendapat jawaban di #upstart
saluran IRC. Pada titik tertentu, pemula akan mendapatkan dukungan PAM yang tepat dan dengan demikian membaca /etc/environment
sendiri. Sampai saat itu, triknya adalah menjalankan perintah dengan su. su
menggunakan PAM dan akan mengatur lingkungan yang tepat. Contoh:
script
exec su root -c /usr/sbin/job_needing_envs
end script
su: must be run from a terminal
Saya cenderung menggunakan eval $(cat /etc/environment | sed 's/^/export /')
Dibutuhkan setiap baris dalam /etc/environment
, prepends export
, dan mengevaluasinya:
script
exec /bin/bash <<'EOT'
eval $(cat /etc/environment | sed 's/^/export /')
do_what_you_need_to
EOT
end script
Tambahkan ini ke skrip Anda:
. /etc/environment
export VAR1 VAR2 VAR3
di mana variabel yang Anda butuhkan ditentukan sebagai pengganti placeholder gaya "VAR1".
/etc/environment
untuk mendefinisikan semua variabel yang Anda butuhkan. Biarkan itu sebagai file statis. Di sistem saya, saya hanya dapat menemukan beberapa skrip yang menggunakannya. Buat file bernama sesuatu seperti /etc/environment.local
dan menempatkan variabel Anda dan ekspor di sana dan sumber yang berkas. Maka Anda hanya perlu mempertahankan satu file itu.