Làm thế nào để 'màn hình' tác động đến các biến môi trường?


8

Tôi nhận thấy sự khác biệt trong 'env' trước và sau cuộc gọi 'màn hình', có sự rõ ràng nào thêm về cái được gọi (để đặt biến môi trường) không?

Tôi không thể thấy bất kỳ lời giải thích rõ ràng nào từ một tìm kiếm nhanh trên 'màn hình người đàn ông'

Một số truy vấn googled về chủ đề:

http://alan.lamielle.net/2009/03/09/envir-variabled-and-gnu-screen

/superuser/105954/updating-screen-session-envir-variables-to-reflect-new-graphical-login

Tôi đoán một câu hỏi phụ cụ thể hơn sẽ là, câu hỏi nào không được khởi tạo trong phiên màn hình so với câu hỏi đăng nhập bình thường?

Câu trả lời:


10

Một tiến trình kế thừa các biến môi trường từ cha mẹ, điều này có nghĩa là lần đầu tiên bạn gọi screen(tạo một biến mới) nó có một bản sao của tất cả các biến môi trường của tiến trình cha. Bây giờ screenĐiều chỉnh / tạo ra một số biến như COLUMNS, LINES, TERM, TERMCAP, WINDOWSTY. Bạn cũng có thể điều chỉnh hoặc biến môi trường delete trong của bạn screenrcvới setenv/ unsetenv.

Trên một số hệ thống, screensetuid hoặc setgid để cập nhật utmpwtmp ; sau đó một vài biến được loại bỏ khỏi môi trường khi screenbắt đầu, chẳng hạn như LD_LIBRARY_PATH.

Nếu bạn đính kèm vào một screenphiên hiện có , các biến môi trường của bạn sẽ không được sao chép vì screenquy trình đã tồn tại và có các biến môi trường riêng (từ khi bạn bắt đầu quy trình trước đó). Điều này có nghĩa là các biến môi trường đã thay đổi của bạn sẽ không hiển thị trong các quy trình được bắt đầu bởi màn hình vì chúng được sao chép từ quy trình cha có các biến môi trường cũ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.