Tôi đang cố gắng tìm ra cách khởi chạy một ứng dụng GUI khi một người dùng khác đăng nhập tương tác, trong phiên đồ họa của người dùng đó.
Ví dụ: giả sử tôi có hai người dùng, foo và bar. Cả hai đều đăng nhập, nhưng người dùng tương tác hiện tại là foo. Tôi muốn khởi chạy Calculator.app dưới dạng "thanh" người dùng, để khi tôi nhanh chóng chuyển sang thanh, tôi thấy cửa sổ Máy tính đang mở trong phiên của thanh.
Đây là những gì tôi đã thử mà không hoạt động:
sudo -u bar /Applications/Calculator.app/Contents/MacOS/Calculator
Thao tác này sẽ khởi chạy Calculator.app dưới dạng thanh, nhưng cửa sổ sẽ mở trong phiên đồ họa của foo.
sudo -u bar osascript -e "tell application \"Calculator\" to activate"
Hiệu quả tương tự.
sudo -u bar open "/Applications/Calculator.app"
Khởi chạy Máy tính dưới dạng foo, không phải thanh.
launchctl asuser [uid of bar] [any of the above commands]
Hiệu quả tương tự.
Có cách nào để thực hiện điều này? Tôi sẵn sàng giải trí theo mọi cách của các giải pháp khả thi, bao gồm bash scripting, AppleScript, viết chương trình Core Foundation hoặc ca cao, v.v. Trong tình huống của tôi, bất kỳ chương trình hoặc tập lệnh nào cũng có thể thực thi như bất kỳ người dùng nào, kể cả root.
Lưu ý: Tôi biết rằng có thể sử dụng Sự kiện Apple từ xa, nhưng tôi không thể sử dụng điều đó vì trong tình huống tôi đang cố gắng làm điều này, tôi không đảm bảo rằng "Sự kiện Apple từ xa" sẽ được bật trong tùy chọn Chia sẻ.
Mọi sự trợ giúp sẽ rất được trân trọng!
open
lệnh, sử dụngSSH
?