2012-01-05 33 views
5

Để chọn giữa loại chỉ báo ứng dụng nào để sử dụng cho một chương trình, tôi cần phát hiện xem tôi có đang sử dụng máy tính để bàn Unity hay không. Điều này có thể không? Có thể nào khi tôi không có quyền truy cập vào môi trường không?Làm thế nào tôi có thể phát hiện khi tôi đang ở trên một hệ thống đang chạy Unity?

+2

Tìm thấy: http://askubuntu.com/questions/70296/is-there-an-environment-variable-that-is-set-for-unity – wormsparty

+0

Tôi đã chỉnh sửa câu hỏi của mình, tôi có thể không có quyền truy cập với môi trường, vì vậy đó không phải là một giải pháp hoàn chỉnh. – fredley

+0

Một cách khác là kiểm tra xem quy trình có tên 'unity' đang chạy hay chưa. Tôi không nghĩ rằng có một cách đa nền tảng để làm điều này. Đối với Linux, bạn có thể muốn xem: http://stackoverflow.com/questions/939778/linux-api-to-list-running-processes – wormsparty

Trả lời

2

Chỉ cần thực thi shell ps aux | grep unity, đây là giao diện chéo cho Linux. Thậm chí hoạt động trên lõi ARM.

Trên 11.04 Ubuntu hoạt động thống nhất của tôi, nó trả về bảng thống nhất-2d, unity-2d-launcher và các quy trình khác. Không thể xác nhận nếu điều này là đúng trên mọi nền tảng Linux.

+0

Có thể có các phiên khác (thuộc về người dùng hiện tại hoặc người dùng khác) chạy Unity khi phiên hiện tại của bạn có thể không. Tôi khuyên không nên dựa vào sự tồn tại của một tiến trình Unity. – Manki

3

Trong Ubuntu bạn có thể sử dụng lệnh sau:

  • echo $ DESKTOP_SESSION: Đây ubuntu lệnh trở lại khi bạn đang sử dụng Unity và ubuntu-2d khi bạn đang sử dụng Unity 2D và ...
  • sudo grep "Phiên khởi đầu" /var/log/lightdm/lightdm.log: Do phiên bản Ubuntu cuối cùng sử dụng lightdm làm trình quản lý hiển thị, bạn có thể xem dòng cuối cùng của tệp lightdm.log.
1

Nhìn trong danh sách các biến môi trường cho sự hiệp nhất bằng cách chạy dòng lệnh này:

env | grep -i unity 

Nếu như in this answer bạn thấy XDG_CURRENT_DESKTOP=Unity thì bạn biết nó đang được sử dụng. Ngoài ra, bạn có thể kiểm tra desktop thay vì unity.

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