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?
xinit
atau startx
?
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?
xinit
atau startx
?
Jawaban:
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:
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.
xterm &
untuk mendapatkan terminal tambahan, bukan hanya xterm
. Dll
Berikut adalah dasar-dasar untuk menjalankan aplikasi GUI tanpa kepala, dengan cara ( vnc
) untuk terhubung dengannya. Bekerja RHEL7
dan Centos 7
bersama keluarga. Dan merobek gambar Docker saya sendiri yang saya gunakan untuk Crashplan terletak di https://github.com/xeor/dockerfiles/tree/master/crashplan/ (lihat Dockerfile
untuk pengaturan, dan init/setup
untuk 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.
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:
Anda dapat menggunakan alat seperti startx
memulai X11 dengan cara yang sama dari login konsol; itu akan meluncurkan Xorg diikuti oleh klien yang tercantum dalam ~/.xinitrc
file Anda .
Misalnya, file .xinitrc dapat memiliki startkde
atau gnome-session
, atau dapat mencantumkan komponen individual (pengelola jendela, panel / bilah tugas, desktop ...)
(Perhatikan bahwa ada beberapa perbedaan antara xinit
dan startx
- biasanya Anda harus menggunakan yang terakhir, karena beberapa distro memiliki beberapa konfigurasi penting yang akan diabaikan oleh xinit, yaitu xserverrc
skrip.)
Dengan Wayland, desktop & panel adalah bagian terintegrasi dari "compositor", sehingga seluruh antarmuka dimulai dalam satu langkah tanpa alat tambahan. Misalnya, Anda dapat menjalankan weston
atau memulai menggunakan GNOME gnome-session --session=gnome-wayland
.
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 $DISPLAY
untuk 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 xauth
keamanan 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.