Điểm:1

Cách khởi động ứng dụng gui trong cửa sổ hộp mở bên ngoài tệp tự động chạy của nó

lá cờ ke

TL;DR

Chạy máy chủ Ubuntu 20.04 với hộp mở xinit xserver-xorg x11-xserver-utils xinit Cài đặt. Tôi có thể đặt một lệnh trong tệp tự động chạy của openbox và nó chạy tốt. Bây giờ tôi muốn bắt đầu openbox, sau đó từ một trình nền, sau đó bắt đầu một ứng dụng để chạy trong cửa sổ openbox hiện đang mở. Làm cách nào để xử lý cửa sổ hộp mở hiện tại?

Chi tiết

Tôi đã làm theo điều này rất hữu ích hướng dẫn cách thiết lập ki-ốt, nó dành cho raspberry pi, tôi đã điều chỉnh nó để chạy trên máy chủ ubuntu.

Tất cả chạy tốt; người dùng khách tự động đăng nhập khi khởi động, sau đó tệp .profile của người dùng khách sẽ chạy startx -- -nocursorvà bên trong tệp tự động khởi động của hộp mở là một lệnh để khởi động crom. Những ngày hạnh phúc.

Bây giờ tôi muốn di chuyển lệnh khởi động crom ra khỏi tệp tự động khởi động hộp mở và đặt nó dưới sự kiểm soát của người giám sát (vì vậy nếu crom gặp sự cố, người giám sát sẽ tự động khởi động lại crom).

Thật không may khi người giám sát cố gắng khởi động crom, chạy với tư cách là người dùng khách, thì không thể hiển thị cửa sổ hộp mở. Tôi đã xác minh rằng trong cửa sổ hộp mở, $DISPLAY được đặt thành ":0".

Tôi đoán có một số yếu tố khác đang diễn ra, đó không chỉ là màn hình tôi cần đặt, mà có thể là trình quản lý cửa sổ, ứng dụng khách gui hoặc thứ gì đó tương tự.

Tệp cấu hình giám sát:

[chương trình:crom]
môi trường = HIỂN THỊ=":0"
lệnh = trình duyệt crom --kiosk
bắt đầu = 6
người dùng = khách
stderr_logfile=/var/log/supervisor/chromium_stderr.log
stdout_logfile=/var/log/supervisor/chromium_stdout.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=3

Vì nó đang chạy với tư cách là khách của người dùng nên nó hầu như không có ít quyền. Tôi đã kiểm tra nhật ký lỗi của người giám sát cho ứng dụng crom và nó không mở được /var/log/Xorg.1.log, vì vậy tôi đã chmod 777 nó (nó vẫn ở mức 0 byte vì không tăng), hiện đang nhận được:

xauth: hết thời gian chờ trong tệp thẩm quyền khóa /.Xmasterity

Điểm:0
lá cờ pl

Trong Ubuntu 20.04, bạn không cần Người giám sát để đảm bảo chương trình được khởi động lại. Bạn có thể sử dụng Systemd để khởi động lại một daemon bị lỗi. Có lẽ bạn nên thử phương pháp này.

[Dịch vụ]
Khởi động lại = khi thất bại
Khởi động lạiSec=10s

Theo như tôi hiểu khi bạn gặp lỗi như thế này:

 hết thời gian chờ trong tệp thẩm quyền khóa /.Xmasterity

Nó có nghĩa là tệp này bị khóa bởi ứng dụng khác.Để xóa khóa, tôi nghĩ bạn có thể sử dụng tùy chọn -b nhưng tôi không chắc. Một giải pháp khác là chỉ cần loại bỏ nó ...

Ngoài ra, hãy thử định cấu hình nhật ký thành /tmp/var/log/Xorg.1.log có thể ứng dụng của bạn không có quyền trên /var/log nhưng tôi có nghi ngờ của tôi ...

Chỉ cần 2 xu của tôi ...

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.