Saya memulai proses dengan init.d dan ingin dapat membuat aplikasi GUI sebagai proses anak.
Karena awal proses ini, variabel lingkungan DISPLAY dan XAUTHORITY tidak ditetapkan.
Saya bisa mengatur DISPLAY menjadi: 0,0, yang berfungsi dengan baik. Namun, saya mengalami lebih banyak masalah dengan variabel XAUTHORITY.
Saya hanya bisa mengatur XAUTHORITY untuk menunjuk ke file .XAuthority di direktori home pengguna - tetapi tidak ada. Sebaliknya, ketika masuk secara normal ke X-Session, variabel XAUTHORITY diatur ke beberapa file di bawah / var / run / gdm / dan memiliki nama file yang tampaknya acak.
Sebagai root, bisakah saya menghasilkan cookie baru untuk saya sendiri?
xauth add
Jawaban:
Anda tidak dapat membuat cookie baru: cookie adalah "kata sandi rahasia" yang diberi tahu oleh server saat itu dimulai dan yang perlu diketahui semua klien untuk dapat terhubung.
Saya pikir Anda bisa mendapatkan apa yang Anda inginkan dengan sesuatu seperti
Ini bekerja dengan mencari proses X server yang mencoba menemukan
-auth
argumen yang diteruskan ke sana, karena itu harus berupa file yang berisi pengaturan XAUTH. Perhatikan bahwa file ini biasanya (menurut pengalaman saya) dimiliki oleh root dan pengguna lain tidak dapat membacanya, jadi jika Anda ingin menjalankan aplikasi X yang tidak dijalankan sebagai root, Anda harus menyalin ini terlebih dahulu. file (sebagai root) di tempat lain dan ubah pemilik salinan itu (atau lebih mungkin, Anda ingin mentransfer konten file ini ke file pengguna~/.Xauthority
, menggunakanxauth add
atauxauth merge
).Cara lain untuk menemukan file tempat cookie ajaib disimpan adalah dengan melihat lingkungan beberapa proses pengguna yang masuk (misalnya
gnome-shell
proses). Misalnya denganps
Anda harus dapat menemukan idgnome-shell
proses dari proses (atau beberapa proses pengguna lain yang kami harapkan berjalan sebagai klien X), dan kemudian melihat/proc/<process-id>/environment
ke dalam untuk menemukan nilai envvar XAUTHORITY-nya.sumber