Önyükleme çalışan bir hizmet var ve bu hizmet bazı ortam değişkenleri veren arka planda bir bash komut dosyası çağırır. Yaşadığım sorun, bu ortam değişkenlerinin komut dosyamın yürütülmesi tamamlanır tamamlanmaz arka plan işleminin üst öğesine gönderilmiyor olmasıdır.
Ayrıca, komut dosyası çalıştırıldıktan sonra hizmet daha sonra sahip olduğum bir uygulamayı başlatan başka bir komut dosyasını çağırır. Bu uygulamanın bu ortam değişkenlerine erişmesi gerekiyor.
Çalıştırdığım RHEL sistemi, kullanıcı tarafından hiçbir zaman oturum açmamak anlamına gelir, yalnızca önyükleme yapar ve uygulamayı başlatır. Bir üst işlem / kabuk için ortam değişkenleri gerçekten bir alt arka plan işlem kabuğu tarafından ayarlanamayacağını biliyorum .
Ben (benim için işe yaramadı) benim hizmet (ve benim için işe yaramadı) ekleyerek değil, benim hizmet tarafından çağrılan (mutlaka arka planda değil) bir komut dosyası aracılığıyla bunu yapmak için bir yol gerekir bir /etc/environment
veya .profile
ya da bunun gibi bir şey.
Hizmetimde ortam değişkenlerini eklemeye çalıştım (ne yapmak istediğimi değil):
export TEST=192.168.1.1
Ben de bunu hizmetimde denedim:
TEST=192.168.1.1
export TEST=${TEST}
Hizmetimin bash betiğini nasıl çağırdığını değiştirmeyi denedim:
/bin/asdf/script &
(Ben aldığım aynı kabuğun da çalışacak şekilde ben de senaryoyu kaynak çalıştı bu ):
. ./bin/asdf/script
#I'm very confused why this didn't work
Ben de buldum bu ilginç görünüyordu hangi ama gerçekten benim durumumda başarmak vermedi.