ฉันมีบริการที่ทำงานตอนบู๊ตและในบริการนั้นจะเรียกสคริปต์ทุบตีในพื้นหลังที่ส่งออกตัวแปรสภาพแวดล้อมบางอย่าง ปัญหาที่ฉันมีคือตัวแปรสภาพแวดล้อมเหล่านั้นไม่ได้ถูกส่งไปยังพาเรนต์ของกระบวนการพื้นหลังดังนั้นทันทีที่สคริปต์ของฉันทำงานเสร็จพวกเขาก็หายไป
นอกจากนี้หลังจากที่เรียกใช้สคริปต์แล้วบริการจะเรียกใช้สคริปต์อื่นที่เริ่มต้นแอปพลิเคชันที่ฉันมี แอปพลิเคชันนี้ต้องการการเข้าถึงตัวแปรสภาพแวดล้อมเหล่านั้น
ระบบ RHEL ที่ฉันใช้งานนั้นมีไว้สำหรับผู้ใช้ที่ไม่เคยลงชื่อเข้าใช้ระบบจะบู๊ตและเริ่มแอปพลิเคชันเท่านั้น ฉันรู้ว่าตัวแปรสภาพแวดล้อมสำหรับกระบวนการผู้ปกครอง / เปลือกไม่สามารถจริงๆตั้งค่าได้โดยเปลือกกระบวนการพื้นหลังเด็กแม้ว่า
ฉันต้องการวิธีการทำสิ่งนี้ผ่านสคริปต์ที่ถูกเรียกใช้โดยบริการของฉัน (ไม่จำเป็นต้องอยู่ในพื้นหลัง) ไม่ใช่โดยการเพิ่มเข้าไปในบริการของฉัน (ซึ่งไม่ได้ผลสำหรับฉัน) และไม่เก็บไว้ใน/etc/environment
หรือ.profile
หรืออะไรเช่นนั้น
ในบริการของฉันฉันพยายามเพิ่มตัวแปรสภาพแวดล้อม (ไม่ใช่สิ่งที่ฉันต้องการจะทำ):
export TEST=192.168.1.1
ฉันลองสิ่งนี้ในบริการของฉันด้วย:
TEST=192.168.1.1
export TEST=${TEST}
ฉันพยายามเปลี่ยนวิธีการให้บริการของฉันเรียกสคริปต์ทุบตี:
/bin/asdf/script &
ฉันยังพยายามจัดหาสคริปต์เพื่อให้ทำงานในเชลล์เดียวกัน (ซึ่งฉันได้รับจากสิ่งนี้ ):
. ./bin/asdf/script
#I'm very confused why this didn't work
ฉันพบสิ่งนี้ซึ่งดูน่าสนใจ แต่มันก็ไม่ได้แปลกในกรณีของฉัน