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?

Ben
sumber
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
related superuser.com/questions/407043/…
Ciro Santilli 冠状 病毒 审查 六四 事件 事件 法轮功

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.

terdon
sumber
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.

xeor
sumber
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.

pengguna1686
sumber
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.

pjc50
sumber
Jawabannya tidak terkait, tetapi bermanfaat
Ben