2011-12-21 23 views
5

Tôi có một tập lệnh xuất một biến môi trường và bắt đầu một số bảng con.Thay đổi biến môi trường của một tiến trình đang chạy

export LOGLEVEL="1" 
/home/myuser/bin/myscript1.sh 
/home/myuser/bin/myscript2.sh 

LOGLEVEL có sẵn cho quá trình bắt đầu từ bảng con. Làm thế nào tôi có thể thay đổi biến môi trường LOGLEVEL?

Tôi đã cố gắng đặt biến với export LOGLEVEL="5" nhưng không hoạt động.

+0

thể trùng lặp của [Có cách nào để thay đổi các biến môi trường của quá trình khác?] (Http://stackoverflow.com/questions/205064/ là-có-một-cách-to-thay đổi-một biến-môi trường-biến khác) – thiton

+0

Nơi nào bạn muốn LOGLEVEL thay đổi và cho quá trình gì - khi bạn nói nó đã thay đổi cho hai quá trình myscript. – Mark

+0

@Mark: Nó không quan trọng nếu LOGLEVEL được thay đổi cho các quá trình của cả hai subscript, hoặc nếu tôi có thể thay đổi nó cho các quy trình riêng lẻ. Về cơ bản, tôi đang tìm kiếm bất kỳ cách nào để nói chuyện với một quy trình, rằng nó sẽ in thêm thông tin vào logfile của nó. –

Trả lời

11

Nói chung, bạn chỉ có thể ảnh hưởng đến các biến môi trường của quá trình tại thời điểm quá trình khởi động. Nếu bạn cần truyền đạt một thay đổi cho một tiến trình đang chạy, môi trường không phải là công cụ thích hợp.

Tuy nhiên, this question có một số câu trả lời đề xuất các cách khắc phục giới hạn này.

Được chỉnh sửa để thêm ánh sáng vào thảo luận trong câu hỏi: Một cách khá tốt để giao tiếp thỉnh thoảng thay đổi thiết lập thành quy trình đang chạy là chỉ định tệp cấu hình có giá trị LOGLEVEL, gửi SIGHUP đến quy trình và có quá trình đọc lại tập tin cấu hình khi nhận được SIGHUP.

+1

Cảm ơn bạn đã liên kết và đầu mối cách quản lý điều này đúng cách - Tôi đã đọc thêm về SIGHUP và được tìm thấy trên Wikipedia: Các chương trình _Daemon đôi khi sử dụng SIGHUP làm tín hiệu để tự khởi động lại, lý do phổ biến nhất cho việc này -read một tập tin cấu hình đã được thay đổi_ –

-2

Trong linux:

strings –a /proc/<pid_of_the_process>/environ 

hoặc

ps eww <pid_of_the_process> 
+6

Bản in đó, câu hỏi đã được sửa đổi. Không giúp đỡ. – rektide

Các vấn đề liên quan