Câu hỏi Làm thế nào để bạn gắn thêm vào biến môi trường trong Upstart?


Tôi đặt những điều sau đây trong tập tin /etc/init/myjob.conf của mình nhưng nó dường như không hoạt động

env PATH=$PATH:/mnt/data/src
env PYTHONPATH=$PYTHONPATH:/mnt/progs/link

Có thể bằng cách nào đó nối thêm vào một biến môi trường.


2
2017-07-12 01:25


gốc


Những gì bạn có nghĩa là bởi "nó không có vẻ để làm việc"? Nếu bạn giải thích cho chúng tôi những gì bạn đang cố gắng làm, chúng tôi có thể giúp bạn tốt hơn. - edwin


Các câu trả lời:


xuất PATH = ~ / bin: "$ PATH"

Bạn nên thêm điều này vào ~ / .bashrc tệp để hoạt động ở mọi phiên người dùng.

Bạn nên khởi động lại để xem nó hoạt động hoặc thử . .bashrc lệnh để làm việc mà không cần khởi động lại.


-1
2017-07-12 02:08



Điều này có liên quan gì với upstart và tại sao nó được chấp nhận? - Melvyn


Bạn không thể nối thêm các biến bên trong một kịch bản mới nổi, bạn cần phải sử dụng một tệp bên ngoài và nguồn nó bên trong một phần kịch bản lệnh:

tạo một / etc / default / myjob tệp có nội dung như:

env PATH=$PATH:/mnt/data/src
env PYTHONPATH=$PYTHONPATH:/mnt/progs/link
export PATH
export PYTHONPATH

sau đó trong /etc/init/myjob.conf nguồn nó, nơi bạn cần nó

script 
    . /etc/default/myjob
    exec command
end script

trong khi điều này có vẻ phức tạp không cần thiết, nó thực sự là chính xác vì một tập lệnh init được cho là thay đổi giữa các phiên bản gói trong khi / etc / default / appname là các tệp cấu hình và không bị ghi đè theo mặc định


3
2017-12-18 11:01





Bạn có thể đặt thông tin sau vào tệp / etc / environment của mình:

PATH="/mnt/data/src:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

PYTHONPATH="/mnt/progs/link"

Tất nhiên, phương thức này sẽ không "nối thêm", nhưng nó không cần thiết vì đây là các biến môi trường chính và các ứng dụng khác nên thêm vào chúng.


0
2017-07-12 02:33