Bagaimana cara memulai VNC Server saat boot?

29

Bagaimana cara membuat file autostart di seluruh sistem? Ini akan berada di server cloud yang menjalankan versi desktop Maverick.

Saya login sebagai root dan membuat file autostart menggunakan System/Preferences/StartupApplicationstetapi akhirnya /root/.config/autostartdan tidak mengeksekusi (sejauh yang saya tahu) setelah reboot. File autostart adalah untuk memanggil skrip bash yang memanggil server VNC.

Saya menyalin file autostart .desktop dari /root/.config/autostartke /etc/xdg/autostartdan reboot. Ini sepertinya tidak membuat perbedaan.

Sunting Seperti disebutkan dalam komentar, tujuannya adalah untuk menjalankan skrip bash saya yang memulai server VNC saat boot; bukan saat login.

H2ONaCl
sumber
maksud Anda autostart saat boot atau autostart ketika seseorang (siapa saja) masuk?
fossfreedom
Saya ingin server VNC melakukan autostart saat boot.
H2ONaCl
1
Saya telah menemukan jawaban di SU SE superuser.com/questions/147109/... cobalah
wisemonkey
Tidakkah VNC membutuhkan tampilan untuk berjalan?
desgua

Jawaban:

19
  1. Pertama, instal server TightVNC sudo apt-get install tightvncserver.

  2. Siapkan server VNC untuk pengguna yang ingin Anda masuki. Ketika Anda menjalankan "vncserver" untuk pertama kalinya, ia akan meminta Anda untuk mengatur kata sandi. hanya memperbolehkan koneksi SSH tunnelled atau VPN. Untuk meluncurkan program atau sesi ketika sesi VNC Anda dimulai, modifikasi ~/.vnc/xstartup. Berikut ini sebuah contoh.

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -solid black
    /opt/azureus/azureus &
    k3b &
    icewm-session &
    
  3. Salin yang berikut ke dalam /etc/init.d/vncserver. Cara termudah untuk melakukannya adalah menyalinnya ke clipboard Anda, jalankan sudo -i && cat > /etc/init.d/vncserver && exitdi terminal, tempel di, dan ketik CTRL-D. Pastikan untuk mengubah variabel USER ke pengguna apa pun yang Anda inginkan agar server VNC dijalankan.

    #!/bin/sh -e
    ### BEGIN INIT INFO
    # Provides:          vncserver
    # Required-Start:    networking
    # Default-Start:     3 4 5
    # Default-Stop:      0 6
    ### END INIT INFO
    
    PATH="$PATH:/usr/X11R6/bin/"
    
    # The Username:Group that will run VNC
    export USER="mythtv"
    #${RUNAS}
    
    # The display that VNC will use
    DISPLAY="1"
    
    # Color depth (between 8 and 32)
    DEPTH="16"
    
    # The Desktop geometry to use.
    #GEOMETRY="<WIDTH>x<HEIGHT>"
    #GEOMETRY="800x600"
    GEOMETRY="1024x768"
    #GEOMETRY="1280x1024"
    
    # The name that the VNC Desktop will have.
    NAME="my-vnc-server"
    
    OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
    
    . /lib/lsb/init-functions
    
    case "$1" in
    start)
    log_action_begin_msg "Starting vncserver for user '${USER}' on   localhost:${DISPLAY}"
    su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
    ;;
    
    stop)
    log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
    su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
    ;;
    
    restart)
    $0 stop
    $0 start
    ;;
    esac
    
    exit 0
    
  4. Jadikan skrip dapat dieksekusi dengan sudo chmod +x /etc/init.d/vncserver.

  5. Terakhir, sambungkan ke server Anda dengan klien VNC pada port 590X, di mana X adalah nilai "DISPLAY" dalam skrip vncserver. Pada OS X, saya suka menggunakan Chicken of the VNC. Di Windows dan Linux, klien TightVNC bekerja dengan baik.

Sumber

maniat1k
sumber
Ini superuser.com/questions/147109/... dari wisemonkey adalah stackexchange setara jawaban. Berhasil. Perhatikan jalur ke X11 mungkin perlu disesuaikan.
H2ONaCl
Instalasi TigerVNC /etc/init.d/vncserveryang memulai semua vncservers yang dikonfigurasikan di/etc/sysconfig/vncservers
Kashyap
5
Ini disalin-tempel dari abdevelopment.ca/blog/start-vnc-server-ubuntu-boot , tetapi ini LEFT OUT LANGKAH PALING PENTINGsudo update-rc.d vncserver defaults
Hai Phan
3

Satu kemungkinan: /etc/rc.local

Konten mengatakannya:

# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits. 
#
# By default this script does nothing

Bit eksekusi sudah diatur ke 755 pada sistem saya. (chmod 755 /etc/rc.local)

Anda dapat menempatkan perintah apa pun di sana, yang akan dieksekusi sebagai root.

Ini ok untuk tujuan Anda selama Anda tidak mengubah runlevel, saya kira. (Jika Anda tidak tahu apa itu runlevel, Nevermind).

Tobias
sumber
2
Saran ini tidak berhasil untuk saya.
H2ONaCl
2 tweak ini dapat membantu.
Cees Timmerman
@CeesTimmerman, terima kasih tetapi kedua tweak itu tidak berhasil.
H2ONaCl
2

Jika Anda menggunakan TigerVNC maka instal /etc/init.d/vncserveryang memulai semua vncservers yang terkonfigurasi dalam /etc/sysconfig/vncservers Eg berikut akan memulai 2 instance pada tampilan 1 & 2 saat start up.

# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"

VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"
Kashyap
sumber
2

ini tampaknya menjadi posting lama tetapi topiknya mungkin masih menarik untuk beberapa pengguna. Agar vnc mulai saat boot up, Anda harus melakukannya

  1. instal perangkat lunak server vnc (di sini kita akan menggunakan x11vnc)
  2. mengkonfigurasi skrip startup (digunakan untuk memulai layanan vnc)

Langkah 1 - instal server x11vnc

dari baris perintah, ketik

 sudo apt-get install x11vnc

Untuk menambah keamanan, Anda harus mengatur pwd

sudo x11vnc -storepasswd

Langkah 2 - Konfigurasikan skrip startup Anda

  • jika versi ubuntu Anda lebih rendah 15,04,

Anda membuat file config di bawah /etc/init.d/x11vnc.confdan mengisinya dengan perintah yang benar untuk dieksekusi

start on login-session-start  
script  
/usr/bin/x11vnc -xkb -auth
/var/run/lightdm/root/:0
-noxrecord -noxfixes -noxdamage 
-rfbauth /etc/x11vnc.pass 
-forever -bg -rfbport 5900 -o /var/log/x11vnc.log  
end script
  • jika versi ubuntu Anda 15,04 atau lebih baru,

sistem ini menggunakan systemd dan Anda perlu membuat file unit layanan Anda di bawah /lib/systemd/system/x11vnc.service dan mengisinya dengan perintah yang benar untuk dieksekusi

[Unit] Description=Start x11vnc at startup. After=multi-user.target

[Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever
-loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared

[Install] WantedBy=multi-user.target

Muat ulang layanan

sudo systemctl daemon-reload

sudo systemctl enable x11vnc.service

Anda dapat menemukan informasi terperinci tentang Bantuan halaman wiki Komunitas Ubuntu (lihat di sini ) atau Anda dapat mencoba menggunakan penerima ini dengan cepat untuk digunakan

  • Untuk versi Ubuntu lebih rendah dari 15,04 , periksa posting ini
  • Untuk Ubuntu versi 15.04 atau lebih baru , periksa posting ini

Semoga ini bermanfaat

Grifon
sumber
1

Tambahkan baris di bawah ini ke file crontab. Ini berarti perintah setelah kata kunci @rebootdieksekusi saat reboot.

@reboot /usr/bin/vncserver :1

Untuk membuka file crontab, perlu menggunakan perintah crontab -e

rashok
sumber
Sama seperti jawaban 6 tahun ini: askubuntu.com/a/124079/158442
muru
0

Anda dapat memiliki cron start stuff untuk Anda saat boot. Cukup gunakan string "@reboot" sebagai ganti angka yang biasanya Anda gunakan untuk menentukan kapan hal itu harus dijalankan.

Misalnya, inilah cara saya memulai Dropbox pada mesin yang tidak dapat dijalankan secara otomatis:

# m h  dom mon dow   command
@reboot         /usr/bin/dropbox start
offby1
sumber
Halaman ini mengatakan itu hanya berfungsi jika sistem benar-benar reboot (tidak ada boot dingin).
Cees Timmerman
0

'sudo update-rc.d vncserver defaults' melaporkan bahwa ada yang hilang; "Diperlukan-Berhenti:" (bahkan kosong). Jadi saya menambahkannya seperti di bawah ini. Dan tidak ada lagi peringatan.

    #!/bin/sh -e
    ### BEGIN INIT INFO
    # Provides:          vncserver
    # Required-Start:    networking
    # Required-Stop:     
    # Default-Start:     3 4 5
    # Default-Stop:      0 6
    ### END INIT INFO
Paulsk
sumber