Supervisord: วิธีต่อท้ายที่ $ PATH


23

ฉันไม่สามารถหาวิธีผนวกเส้นทางเริ่มต้นในการกำหนดค่าโปรแกรม supervisord

ฉันสามารถรีเซ็ตเส้นทาง:

environment=PATH="/home/site/environments/master/bin"

แต่เมื่อฉันลอง:

environment=PATH="/home/site/environments/master/bin:$PATH"

ฉันเห็น supervisord $PATHที่ไม่ได้ประเมิน

Google ไม่ได้ช่วยอะไรมากในเรื่องนี้ด้วยเหตุผลบางอย่างฉันไม่อยากจะเชื่อเลยว่าฉันเป็นคนแรกที่ต้องการสิ่งนี้

Supervisord จะต้องสนับสนุนสิ่งนี้ความคิดใด ๆ


1
@ascobol ไม่ฉันได้ hardcoded เส้นทางที่ฉันต้องการสำหรับตอนนี้
Prody

2
supervisordอย่าเรียกใช้เชลล์เพื่อประมวลผลตัวแปรล่วงหน้าในไฟล์กำหนดค่าดังนั้นคุณจึงไม่สามารถใช้เชลล์นิพจน์เพื่อขยายตัวแปรได้ แม้ว่าจะมีแพทช์ที่อนุญาตให้ทำ%($PATH)และมันถูกกล่าวถึงในรายชื่อผู้รับจดหมายในปี 2011 แต่ AFAIK มันยังไม่รวมอยู่ในแผนผังแหล่งข้อมูลการฉีด คุณสามารถสร้างสคริปต์ที่จะตั้งค่าสภาพแวดล้อมและดำเนินการคำสั่งที่มีให้ในอาร์กิวเมนต์ จากนั้นคุณก็เรียกใช้สคริปต์จากสิ่งที่supervisordชอบcommand /usr/local/bin/setup_env_master.sh program_name arguments
Dmitry Vasilyanov

1
มีข้อเสียเปรียบที่สำคัญในการแก้ปัญหา shell wrapper - เมื่อหัวหน้างานจะพยายามหยุดกระบวนการโดยใช้ INT หรือ KILL สัญญาณจะถูกรับโดยสคริปต์ทุบตีไม่ใช่โปรแกรมที่ถูกห่อจริง สิ่งนี้อาจนำไปสู่ ​​(และนำไปสู่ในกรณีของฉัน) ไปยังกระบวนการที่ห้อยต่องแต่ง
stoiczek

@ stoiczek ปัญหาง่ายต่อการแก้ ใช้ exec เมื่อสิ้นสุดสคริปต์ทุบตีอย่าเพิ่งรันคำสั่งเป็นประจำ exec server --argsดังนั้น คุณเห็นมันในงานพุ่งพรวดอย่างสม่ำเสมอ
CameronNemo

คำตอบ:


17

คุณลักษณะนี้ถูกเพิ่มไปยังหัวหน้างานเมื่อเร็ว ๆ นี้

สภาพแวดล้อม PATH = = "/ home / เว็บไซต์ / สภาพแวดล้อม / Master / bin:% (ENV_PATH) s"

https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf#L8

ดูเพิ่มเติมที่/programming/12900402/supervisor-and-environment-variables


แต่มันยังไม่ได้เปิดตัว (ติดแท็ก): github.com/Supervisor/supervisor/issues/599
tersmitten

จะได้รับการติดแท็กเมื่อวานนี้: pypi.python.org/pypi/supervisor
tersmitten

1

ฉันตรวจสอบเอกสารและเห็นด้วยกับ Dmitry

คำตอบปัจจุบันคือ: หัวหน้างานไม่ได้ทำไดเรกทอรีนี้ แต่การสร้างสคริปต์ตัวหุ้มจะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.