मैं बूट पर VNC सर्वर कैसे शुरू करूं?


29

मैं एक सिस्टम-वाइड ऑटोस्टार्ट फ़ाइल कैसे बना सकता हूँ? यह मेवरिक के डेस्कटॉप संस्करण को चलाने वाले क्लाउड सर्वर पर होगा।

मैंने रूट के रूप में लॉग इन किया और रिबूट करने पर ऑटोस्टार्ट फ़ाइल का उपयोग करके बनाया System/Preferences/StartupApplicationsलेकिन यह समाप्त हो गया /root/.config/autostartऔर निष्पादित नहीं किया (जहां तक ​​मैं बता सकता हूं)। ऑटोस्टार्ट फ़ाइल एक bash स्क्रिप्ट को आमंत्रित करने के लिए है जो VNC सर्वर को आमंत्रित करती है।

मैं से .desktop स्वत: प्रारंभ फ़ाइल की प्रतिलिपि /root/.config/autostartकरने के लिए /etc/xdg/autostartऔर रिबूट। इससे कोई फर्क पड़ता नहीं दिख रहा था।

संपादित करें जैसा कि एक टिप्पणी में उल्लेख किया गया है, इसका उद्देश्य मेरी बैश स्क्रिप्ट को चलाना है जो बूट पर VNC सर्वर को शुरू करता है; लॉगिन पर नहीं।


क्या आपके पास बूट या ऑटोस्टार्ट पर ऑटोस्टार्ट का मतलब है जब कोई (कोई) लॉग ऑन करता है?
जीवाश्म

मैं VNC सर्वर को बूट पर ऑटोस्टार्ट करना चाहता हूं।
H2ONaCl

1
मैं SU एसई पर एक जवाब मिल गया है superuser.com/questions/147109/... इसे आजमाइए
wisemonkey

क्या VNC को चलाने के लिए डिस्प्ले की आवश्यकता नहीं है?
desgua

जवाबों:


19
  1. सबसे पहले, TightVNC सर्वर को स्थापित करें sudo apt-get install tightvncserver

  2. उस उपयोगकर्ता के लिए VNC सर्वर सेट करें जिसे आप लॉग इन करना चाहते हैं। जब आप पहली बार "vncserver" चलाते हैं, तो यह आपसे एक पासवर्ड सेट करने के लिए कहेगा। केवल एसएसएच ट्यूनल्ड या वीपीएन कनेक्शन की अनुमति दें। प्रोग्राम या एक सत्र शुरू करने के लिए जब आपका वीएनसी सत्र शुरू होता है, तो संशोधित करें ~/.vnc/xstartup। यहाँ एक उदाहरण है।

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -solid black
    /opt/azureus/azureus &
    k3b &
    icewm-session &
    
  3. निम्नलिखित में कॉपी करें /etc/init.d/vncserver। इसका सबसे आसान तरीका यह है कि आप इसे अपने क्लिपबोर्ड पर sudo -i && cat > /etc/init.d/vncserver && exitकॉपी करें, टर्मिनल में चलाएं , इसे पेस्ट करें और CTRL-D टाइप करें। जो भी उपयोगकर्ता VNC सर्वर को चलाना चाहते हैं, उसके लिए USER चर को बदलना सुनिश्चित करें।

    #!/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. स्क्रिप्ट को निष्पादन योग्य बनाएं sudo chmod +x /etc/init.d/vncserver

  5. अंत में, पोर्ट 590X पर VNC क्लाइंट के साथ अपने सर्वर से कनेक्ट करें, जहाँ vncserver स्क्रिप्ट में X "DISPLAY" का मान है। ओएस एक्स पर, मुझे वीएनसी के चिकन का उपयोग करना पसंद है। विंडोज और लिनक्स पर, TightVNC क्लाइंट अच्छी तरह से काम करता है।

स्रोत


यह superuser.com/questions/147109/... wisemonkey से stackexchange बराबर जवाब है। यह काम करता हैं। ध्यान दें कि X11 के लिए पथ को समायोजित करने की आवश्यकता हो सकती है।
H2ONaCl

TigerVNC स्थापित करता है /etc/init.d/vncserverजो सभी vncservers को कॉन्फ़िगर करता है/etc/sysconfig/vncservers
कश्यप

5
यह abdevelopment.ca/blog/start-vnc-server-ubuntu-boot से कॉपी-पेस्ट किया गया था , लेकिन यह सबसे महत्वपूर्ण STEPsudo update-rc.d vncserver defaults
हाई फान

3

एक संभावना: /etc/rc.local

सामग्री यह कहती है:

# 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

निष्पादन बिट्स मेरे सिस्टम पर पहले से ही 755 पर सेट हैं। (chmod 755 /etc/rc.local)

आप वहां कोई भी कमांड डाल सकते हैं, जिसे रूट के रूप में निष्पादित किया जाएगा।

यह आपके उद्देश्य के लिए ठीक है जब तक आप रनवे को नहीं बदलते हैं, मुझे लगता है। (यदि आप नहीं जानते कि रनवेल क्या हैं, तो कोई बात नहीं)।


2
यह सुझाव मेरे काम नहीं आया।
H2ONaCl

ये 2 मोड़ मदद कर सकते हैं।
सीस टिमरमैन

@CeesTimmerman, आपको धन्यवाद लेकिन उन 2 tweaks के काम नहीं किया।
H2ONaCl

2

यदि आप टाइगरवीएनसी का उपयोग कर रहे हैं तो यह स्थापित करता है /etc/init.d/vncserverजो शुरू में कॉन्फ़िगर किए गए सभी vncservers को शुरू करता है /etc/sysconfig/vncservers निम्नलिखित शुरू में 1 और 2 प्रदर्शन पर 2 उदाहरण शुरू करेगा।

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

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

2

यह एक पुरानी पोस्ट प्रतीत होती है लेकिन कुछ उपयोगकर्ताओं के लिए विषय अभी भी दिलचस्प हो सकता है। बूट करने के लिए vnc शुरू करने के लिए, आपको इसकी आवश्यकता होगी

  1. vnc सर्वर सॉफ़्टवेयर स्थापित करें (यहाँ हम x11vnc का उपयोग करेंगे)
  2. एक स्टार्टअप स्क्रिप्ट कॉन्फ़िगर करें (vnc सेवा शुरू करने के लिए इस्तेमाल किया)

चरण 1 - x11vnc सर्वर स्थापित करें

कमांड लाइन से, टाइप करें

 sudo apt-get install x11vnc

सुरक्षा जोड़ने के लिए, आपको एक pwd सेट करना चाहिए

sudo x11vnc -storepasswd

चरण 2 - अपनी स्टार्टअप स्क्रिप्ट कॉन्फ़िगर करें

  • यदि आपका ubuntu संस्करण 15.04 कम है,

आप के तहत विन्यास फाइल बनाने /etc/init.d/x11vnc.confऔर निष्पादित करने के लिए सही आदेशों के साथ इसे आबाद करें

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
  • यदि आपका ubuntu संस्करण 15.04 या बाद का है,

ये सिस्टम systemd का उपयोग कर रहे हैं और आपको अपनी सेवा इकाई फ़ाइल को बनाने /lib/systemd/system/x11vnc.service और इसे निष्पादित करने के लिए सही आदेशों के साथ आबाद करने की आवश्यकता होगी

[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

सेवा को पुनः लोड करें

sudo systemctl daemon-reload

sudo systemctl enable x11vnc.service

आप मदद Ubuntu समुदाय विकी पृष्ठ ( यहाँ देखें ) पर विस्तृत जानकारी प्राप्त कर सकते हैं या आप प्राप्त करने के लिए इस त्वरित उपयोग की कोशिश कर सकते हैं

आशा है कि यह उपयोगी है


1

Crontab फ़ाइल के लिए नीचे की रेखा जोड़ें। इसका अर्थ है @rebootकि बहुत रिबूट के दौरान कीवर्ड को निष्पादित करने के बाद कमांड ।

@reboot /usr/bin/vncserver :1

Crontab फ़ाइल खोलने के लिए, कमांड का उपयोग करने की आवश्यकता है crontab -e


वही इस 6 वर्षीय जवाब के रूप में: askubuntu.com/a/124079/158442
muru

0

आपके पास बूट समय पर क्रोन स्टार्ट सामान हो सकता है। संख्याओं के स्थान पर स्ट्रिंग "@reboot" का उपयोग करें जिसे आप सामान्य रूप से निर्दिष्ट करते हैं कि जब बात चलनी चाहिए।

उदाहरण के लिए, यहां बताया गया है कि मैं ड्रॉपबॉक्स को एक मशीन पर कैसे शुरू करता हूं, जिस पर यह अन्यथा स्वचालित रूप से शुरू नहीं होता है:

# m h  dom mon dow   command
@reboot         /usr/bin/dropbox start

यह पृष्ठ कहता है कि केवल तभी काम करता है जब सिस्टम वास्तव में रिबूट करता है (कोई ठंडा बूट नहीं)।
सीस टिमरमैन

0

'sudo update-rc.d vncserver चूक' ने बताया कि गायब था; "आवश्यक-स्टॉप:" (यहां तक ​​कि खाली)। तो मैंने इसे नीचे की तरह जोड़ा। और कोई चेतावनी नहीं।

    #!/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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.