শুরুতে স্বয়ংক্রিয়ভাবে ভিএনসি সার্ভার শুরু করুন


29

আমি একটি উবুন্টু 9.10 ভিপিএস সার্ভারে উবুন্টু ডেস্কটপ ইনস্টল করেছি এবং টাইটভিএনসি ব্যবহার করে সার্ভারের সাথে সংযোগ করতে সক্ষম হয়েছি। তবে, এই ভিপিএসের ভিএনসি সার্ভারটি কেবলমাত্র এসএসএইচের মাধ্যমে লগ ইন করে এবং নিম্নলিখিত আদেশটি টাইপ করে শুরু করা যেতে পারে:

vncserver :1 -geometry 800x600 -depth 16 -pixelformat rgb565

আমি যদি এই আদেশটি প্রারম্ভকালে বা সময়সূচী টাস্ক হিসাবে চালনা করি তবে এটি আরম্ভ হবে না। আমার বিকল্পগুলি কি কি?


কেন আপনি এটি শুরু করার চেষ্টা করবেন না?
Ignacio Vazquez-Abram

উত্তর:


27

" স্টার্টআপে উবুন্টু লঞ্চ ভিএনসি সার্ভার " এর জন্য গুগলে অনুসন্ধান করে আমি এই নির্দেশাবলী পেয়েছি ।

  1. ভিএনসি সার্ভারটি ইনস্টল করুন।
  2. vncserverএকটি পাসওয়ার্ড সেট আপ করতে প্রথমবারের জন্য চালু করুন ।
  3. নিম্নলিখিত ফাইলটি যুক্ত করুন /etc/init.d/vncserver(আপনার পছন্দ অনুসারে ব্যবহারকারী, জিওমেট্রি, NAME ইত্যাদি সংশোধন করতে ভুলবেন না)।
  4. sudo chmod +x /etc/init.d/vncserver
  5. sudo update-rc.d vncserver defaults

/etc/init.d/vncserver

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Default-Start:     S
# 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

আমি নিম্নলিখিত ত্রুটি আউটপুট gist.github.com/anonymous/821d0ec525abb2fe42d8a070c846fb9e পাচ্ছি , আমি বিশ্বাস করি আপনার কনফিগারেশনটি কিছু ফাঁকা মান সহ আপডেট হওয়া দরকার।
নিফটিলেটটিস

আমার কাজ করে তবে একমাত্র সমস্যা হ'ল প্রথমবারের জন্য স্ক্রিপ্টটি শুরু করার জন্য এটি আমার কাছে একটি পাসওয়ার্ড লিখতে বলে। এটি বুট করার পরে আমি এটি প্রবেশ করতে পারি না। আমি কীভাবে এটি ঠিক করতে পারি?
droopie

আপনি কি পাসওয়ার্ডের জন্য সমাধান খুঁজে পেয়েছেন?
বেন

12

আপনি যদি আরও গতিশীল কনফিগারেশন এবং একাধিক ব্যবহারকারীর জন্য সংযোগ দেওয়ার দক্ষতা চান তবে এটি করার আরও ভাল উপায় আছে। রুট হিসাবে ফাইলটি তৈরি করুন (এবং ডিরেক্টরিটি বিদ্যমান না থাকলে) / etc / sysconfig / vncservers অর্থাৎ করুন:

mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf

আপনার সদ্য নির্মিত vncservers.conf ফাইলটিতে নিম্নলিখিতগুলির মতো কিছু যুক্ত করে প্রতিটি ব্যবহারকারীর জন্য প্রয়োজনীয় সার্ভার যুক্ত করুন:

VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"

এরপরে একটি খালি init স্ক্রিপ্ট তৈরি করুন এবং এটি সম্পাদনযোগ্য করুন:

touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver

নিম্নলিখিতগুলি /etc/init.d/vncserver এ যুক্ত করুন:

#!/bin/bash

unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"

start() {
        . /lib/lsb/init-functions
        REQ_USER=$2
        echo -n $"Starting $prog: "
        ulimit -S -c 0 >/dev/null 2>&1
        RETVAL=0
        for display in ${VNCSERVERS}
        do
                export USER="${display##*:}"
                if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
                        echo -n "${display} "
                        unset BASH_ENV ENV
                        DISP="${display%%:*}"
                        export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
                        su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
                fi
        done
}

stop() {
        . /lib/lsb/init-functions
        REQ_USER=$2
        echo -n $"Shutting down VNCServer: "
        for display in ${VNCSERVERS}
        do
                export USER="${display##*:}"
                if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
                        echo -n "${display} "
                        unset BASH_ENV ENV
                        export USER="${display##*:}"
                        su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
                fi
        done
        echo -e "\n"
        echo "VNCServer Stopped"
}

case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

স্টিফেন তার উত্তরে উল্লিখিত হিসাবে আপনাকে প্রতিটি ব্যবহারকারী হিসাবে কমপক্ষে একবারে ভ্যানসাইভার চালাতে হবে আপনি যেমন লগইন করতে চান। আমি এটি ক্যাপগুলিতে রেখেছি কারণ আপনি যদি এই পদক্ষেপটি এড়িয়ে যান তবে তার কোনওটিই কাজ করবে না। সুতরাং রুট হিসাবে আপনি করতে পারেন:

su justin -c vncserver
su bob -c vncserver

এটি যথাযথ প্রারম্ভিক স্ক্রিপ্টগুলির সাহায্যে প্রতিটি ব্যবহারকারীর হোম ডায়ারে একটি .vnc ডিরেক্টরি তৈরি করবে।

অবশেষে, নিম্নলিখিতগুলি করুন:

update-rc.d vncserver defaults 99

এখন আপনি হয় পুনরায় বুট করতে পারেন বা টাইপ করে ম্যানুয়ালি পরিষেবা শুরু করতে পারেন:

service vncserver start

1
এটি আসলে আমার পক্ষে কাজ করে তবে একমাত্র এটি হ'ল এটি স্বয়ংক্রিয়ভাবে শুরু হয় না বলে আমি মনে করি কারণ এটি ব্যবহারকারীর পাসওয়ার্ডের জন্য অনুরোধ করা হতে পারে। যেহেতু এটি স্বয়ংক্রিয়ভাবে ট্রিগার হয়েছে, আমি এটি এর জন্য জিজ্ঞাসা করতে দেখছি না। যদি আমি ম্যানুয়ালি স্ক্রিপ্টটি চালু করি তবে এটি আমার ব্যবহারকারীর পাসওয়ার্ড চাইবে। আমি এটা কিভাবে ঠিক করবো?
druopie

1

আমি যে বন্ধুবান্ধবদের উবুন্টুগুলিতে অ্যাক্সেস করি তাদের সহায়তা করি, ইনস্টল বা কনফিগার করতে বা তাদের কিছু শেখাতে।
যেহেতু মডেমের মাধ্যমে আমার ইন্টারনেট থেকে অ্যাক্সেস প্রয়োজন, আমি ভিনো ব্যবহার করি।
অ্যাক্সেসের সময় সমস্ত ভাগ করে নেওয়ার এবং সুরক্ষা বিকল্পগুলি চালু করা হয়।
আমি চাই না ভিনো-সার্ভারটি সর্বদা সক্রিয় থাকুক: এটি ঠিক আছে এটি অটোস্টার্ট করে না।
আমার কোনও সিস্টেম> রিমোট ডেস্কটপ মেনু নেই।
আমি নিম্নরূপে /usr/share/applications/vino-preferences.desktop সম্পাদনা করেছি:

# OnlyShowIn=Unity;
Exec=bash -c 'vino-preferences;/usr/lib/vino/vino-server&zenity --info --text="Accès par Internet: `curl http://ipecho.net/plain`:5900"'

কাজের আগে, আমি আমার বন্ধুদেরকে রিমোট ডেস্কটপ পছন্দগুলি চালনা করতে এবং ভাগ করে নেওয়ার অনুমতিটি টিক দিতে বলি।
প্রস্থানগুলি প্রস্থান করার সময়, ভিনো-সার্ভার শুরু হয় এবং তারা আমাকে আইপি ঠিকানাটি ব্যবহার করতে বলে।
কাজ শেষ হয়ে গেলে, ভাগ করে নেওয়ার অনুমতি দিন ... বন্ধ করার জন্য তারা আবার পছন্দ চালায়।
প্রস্থানগুলি থেকে বেরোনোর ​​সময়, ভিনো-সার্ভার বন্ধ হয়ে যায় এবং শেয়ারিং অফ স্টেটে শুরু করা হলেও বন্ধ হয়ে যায়।
আমি এই পদ্ধতিটি খুব সুবিধাজনক পাশাপাশি ব্যবহারকারীর পক্ষে সবচেয়ে নিরাপদও বোধ করি।

পিএস: বিকাশকারীরা স্থানীয়ভাবে চালানোর জন্য তাদের প্রোগ্রামগুলি পছন্দ করে (ব্যবহারকারী সেশনের মধ্যে) কারণ কোনও ত্রুটি বিশ্বব্যাপী সিস্টেমকে সেভাবে প্রভাবিত করতে পারে না।


0

উবুন্টু 12.1-এ আমি সিস্টেম সেটিংস-> ব্যবহারকারীদের মধ্যে যেতে এবং একটি ব্যবহারকারী নির্বাচন করতে এবং "স্বয়ংক্রিয় লগইন-> চালু" করতে সক্ষম হয়েছি

তারপরে বাক্সটিতে লগ ইন না করেই আমি টাইটভিএনসি ব্যবহার করতে সক্ষম হয়েছি।

হেডলেস উবুন্টু লিনাক্স বক্সের জন্য ভাল কাজ করেছে


আমি যেটি সংগ্রহ করতে পারি তা থেকে প্রশ্নটি ইউজার লগইন নয়, স্টার্টআপে ভিনসিভারেরকে পাওয়ার আপ করার বিষয়ে।
রোমান Luštrik

0

আমি স্টিফেন জেনিংস সমাধানটিও ব্যবহার করার পরামর্শ দিচ্ছি যদি আপনার বিভিন্ন ব্যবহারকারীদের জন্য বেশ কয়েকটি ভিএনসি প্রয়োজন হয়, কেবলমাত্র বেশ কয়েকটি ভিএনসিএসের_জাহান, ভিএনসিসিভার_বিল, ... ফাইল তৈরি করে। এটি আপনাকে সেগুলি পৃথকভাবে শুরু / থামাতে দেয়। অবশ্যই, ভাল প্রোগ্রামিং অনুশীলনটি কোডটি সকল ব্যবহারকারীদের কাছে একটি ফাইলের মধ্যে সাধারণভাবে রাখার পরামর্শ দেয় এবং অন্য সকলের কাছ থেকে এটি উত্স করে।

আমি এমন একটি সার্ভারের জন্য "উত্তরাধিকারসূত্রে" দায়বদ্ধ হয়েছি যেখানে বেশ কয়েকটি সহকর্মী কিছু বৈজ্ঞানিক প্রোগ্রামিং এবং ডেটা মূল্যায়ন করেন, প্রত্যেকে আলাদা আলাদা ভিএনসি সহ। সার্ভারটি বছরের পর বছর ধরে অবিচ্ছিন্ন এবং স্থিতিশীলভাবে চালিত হয় এবং ব্যবহারকারীরা তাদের খোলা উইন্ডো সংরক্ষণ করতে অলস হয়ে যান। যাইহোক, একক ভ্যানসিভার্স বা এক্স 11 সার্ভারগুলি মাঝে মধ্যে আটকে যায় এবং একটি সার্ভার আবার চালু করতে সমস্ত ব্যবহারকারীকে বন্ধ করে দেওয়া একটি বড় উপদ্রব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.