Meluncurkan program dengan GUI tanpa manajer tampilan


9

Saya pernah mendengar bahwa ada cara meluncurkan program dengan antarmuka grafis tanpa manajer tampilan - langsung dari terminal. Apakah ini nyata dan jika demikian, bagaimana saya bisa melakukan itu?


Apakah Anda perlu berinteraksi dengan GUI?
Daniel B

@DanielB ya, mungkin
Ben

1
Anda dapat menjalankannya tanpa manajer tampilan, tetapi Anda perlu menjalankan sesi X. Distribusi apa yang Anda gunakan? Apakah Anda memiliki server X yang diinstal? Bisakah Anda berlari xinitatau startx?
terdon

@terdon ya, saya sedang menjalankan lmint, tetapi pertanyaannya lebih untuk pengetahuan umum (bukan distro yang ditargetkan).
Ben

Jawaban:


5

Anda dapat menjalankannya tanpa manajer tampilan, tetapi Anda perlu menjalankan sesi X. Rinciannya akan tergantung pada distribusi Anda tetapi Anda harus bisa mendapatkan sesi X minimal dengan satu terminal dengan menjalankan

xinit

Saya sudah bertahun-tahun tidak melakukan ini, tetapi terakhir kali saya lakukan, itu akan memberikan sesuatu seperti ini:

masukkan deskripsi gambar di sini

Sesampai di sana, Anda dapat menjalankan program GUI secara normal, lebih disukai dengan meluncurkannya di latar belakang (dengan &) sehingga Anda tidak kehilangan akses ke satu-satunya terminal Anda.


2
Mungkin perlu disebutkan bahwa "menjalankannya secara normal" kemungkinan besar akan melibatkan proses latar belakang, sehingga Anda kemungkinan besar ingin menggunakan xterm &untuk mendapatkan terminal tambahan, bukan hanya xterm. Dll
CVn

6

Berikut adalah dasar-dasar untuk menjalankan aplikasi GUI tanpa kepala, dengan cara ( vnc) untuk terhubung dengannya. Bekerja RHEL7dan Centos 7bersama keluarga. Dan merobek gambar Docker saya sendiri yang saya gunakan untuk Crashplan terletak di https://github.com/xeor/dockerfiles/tree/master/crashplan/ (lihat Dockerfileuntuk pengaturan, dan init/setupuntuk startup.

# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"

# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*

# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd

# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &

# Wait for the app to start, or else, the vnc server will die before starting
sleep 5

# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY

Anda sekarang harus dapat terhubung ke server: 5900 dan melihat aplikasi.


3

Iya. Lakukan saja hal yang sama seperti yang dilakukan oleh pengelola layar. Selain dari layar masuk grafis (yang tidak Anda perlukan dalam kasus ini), manajer tampilan hanya melakukan dua hal:

  1. Pertama itu memulai "server tampilan" X11, seperti Xorg,
  2. kemudian mulai "klien" yang memberi tahu Xorg apa & di mana menggambar.

Anda dapat menggunakan alat seperti startxmemulai X11 dengan cara yang sama dari login konsol; itu akan meluncurkan Xorg diikuti oleh klien yang tercantum dalam ~/.xinitrcfile Anda .

Misalnya, file .xinitrc dapat memiliki startkdeatau gnome-session, atau dapat mencantumkan komponen individual (pengelola jendela, panel / bilah tugas, desktop ...)

(Perhatikan bahwa ada beberapa perbedaan antara xinitdan startx- biasanya Anda harus menggunakan yang terakhir, karena beberapa distro memiliki beberapa konfigurasi penting yang akan diabaikan oleh xinit, yaitu xserverrcskrip.)

Dengan Wayland, desktop & panel adalah bagian terintegrasi dari "compositor", sehingga seluruh antarmuka dimulai dalam satu langkah tanpa alat tambahan. Misalnya, Anda dapat menjalankan westonatau memulai menggunakan GNOME gnome-session --session=gnome-wayland.


1

Anda dapat menjalankan aplikasi X menggunakan penerusan ssh X (ssh -X; mungkin perlu diaktifkan di konfigurasi server juga), asalkan Anda memiliki tampilan X lokal .

Aplikasi akan diluncurkan dan ditampilkan secara lokal, sambil berjalan pada sistem tanpa kepala. Anda perlu menginstal X pada sistem tanpa kepala untuk memiliki perpustakaan yang tepat, dan ini mungkin tidak berfungsi dengan aplikasi GNOME yang lebih modern.

Anda juga dapat menggunakan $DISPLAYuntuk meluncurkan aplikasi pada tampilan X terlampir bahkan jika shell Anda adalah remote (ssh atau konsol). Jika Anda melakukan root dan orang yang masuk di layar X tidak, Anda dapat mengabaikan xauthkeamanan dan memunculkan jendela di layar mereka. Ini juga berfungsi jika Anda memiliki dua server tampilan X berbeda pada monitor yang berbeda.

Poster lain menyebutkan VNC; Saya juga menggunakan NX untuk tujuan ini, dan saya lebih suka itu.


Jawabannya tidak terkait, tetapi bermanfaat
Ben
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.