Saya memiliki layanan yang berjalan saat boot, dan dalam layanan itu ia memanggil skrip bash di latar belakang yang mengekspor beberapa variabel lingkungan. Masalah yang saya alami adalah bahwa variabel lingkungan tidak dikirim ke induk dari proses latar belakang sehingga segera setelah skrip saya selesai dieksekusi, mereka hilang.
Selain itu, setelah skrip dijalankan, layanan memanggil skrip lain yang memulai aplikasi yang saya miliki. Aplikasi ini membutuhkan akses ke variabel lingkungan tersebut.
Sistem RHEL tempat saya menjalankannya dimaksudkan untuk tidak pernah login oleh pengguna, itu hanya boot dan memulai aplikasi. Saya tahu bahwa variabel lingkungan untuk proses induk / shell tidak dapat benar - benar diatur oleh shell proses latar belakang anak.
Saya perlu cara untuk melakukan ini melalui skrip yang dipanggil oleh layanan saya (tidak harus di latar belakang), bukan dengan menambahkan mereka dalam layanan saya (yang tidak berfungsi baik untuk saya) dan tidak dengan menyimpannya di /etc/environment
atau .profile
atau semacamnya.
Dalam layanan saya, saya mencoba menambahkan variabel lingkungan (bukan yang ingin saya lakukan):
export TEST=192.168.1.1
Saya juga mencoba ini di layanan saya:
TEST=192.168.1.1
export TEST=${TEST}
Saya mencoba mengubah cara layanan saya memanggil skrip bash:
/bin/asdf/script &
Saya juga mencoba sumber skrip sehingga berjalan di shell yang sama (yang saya dapatkan dari ini ):
. ./bin/asdf/script
#I'm very confused why this didn't work
Saya juga menemukan ini yang terlihat menarik tetapi tidak benar-benar berhasil dalam kasus saya.