Làm thế nào là một ứng dụng đồ họa bắt đầu từ một phiên bash được kết nối với phiên bash đó?


7

Khi tôi khởi động một ứng dụng đồ họa từ thiết bị đầu cuối đang chạy bash, ứng dụng đó bằng cách nào đó được kết nối với phiên bash đó. Ví dụ, khi các ứng dụng bỏ một số văn bản, nó sẽ xuất hiện trong phiên bash, nó được bắt đầu từ đó. Ngoài ra, một số ứng dụng sẽ bị đóng khi tôi đóng thiết bị đầu cuối bằng nút đóng, nhưng không phải khi tôi đóng thiết bị đầu cuối bằng cách thoát phiên bash bằng lệnh exit hoặc CTRL + D.

Làm thế nào là một ứng dụng đồ họa bắt đầu từ một phiên bash được kết nối với phiên bash đó?

câu hỏi thưởng: Làm thế nào tôi có thể kiểm tra kết nối này? chắc cũng thao túng?

Câu trả lời:


9

Ứng dụng này được kết nối theo hai cách: bash và với thiết bị đầu cuối.

Kết nối đến thiết bị đầu cuối là các luồng tiêu chuẩn (stdin, stdout và stderr) của ứng dụng được kết nối với thiết bị đầu cuối. Các ứng dụng GUI thông thường không sử dụng stdin hoặc stdout, nhưng chúng có thể phát ra các thông báo lỗi đến thiết bị lỗi chuẩn.

Kết nối với shell là nếu bạn khởi động ứng dụng foo &, nó vẫn được biết đến với shell như một công việc, như được giải thích trong Sự khác biệt giữa nohup, disown và & . Khi bạn đóng thiết bị đầu cuối, shell nhận được một SIGHUPcái mà nó truyền đến công việc của nó. Khi bạn gõ exitvào shell, nó sẽ từ chối các công việc trước đó (điều này có thể cấu hình ở một mức độ nào đó).

Bạn có thể cắt kết nối shell với tích disownhợp. Bạn không thể cắt kết nối đầu cuối, ít nhất là không có các phương thức ngầm (sử dụng trình gỡ lỗi) có thể làm sập chương trình.



2

Shell của bạn bắt đầu các chương trình này như các tiến trình con. Nếu bạn chạy pstree, bạn có thể thấy những mối quan hệ này. Tôi không biết nếu / làm thế nào bạn có thể thao tác nó.

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.