সেন্টোস স্টার্টআপে xvfb শুরু করার সঠিক উপায়?


11

আমি এই টিউটোরিয়ালটি অনুসরণ করছি , এবং আমি এই উবুন্টু-নির্দিষ্ট পদক্ষেপের সমতুলক সেন্টো-সংস্করণটি জানতে চাই:

You may receive a few warnings regarding fonts and such, but it’ll still work despite these. If you want the framebuffer to start automatically on system startup you can do:
sudo update-rc.d xvfb defaults 10

সেন্টোস-এ স্টার্টআপে এক্সভিএফবি শুরু করার সঠিক উপায় কী?

উত্তর:


12

আমি বুটটিতে xvfb যুক্ত করতে এবং শুরু করতে /etc/init.d/ এ এবং chkconfig xvfb চালাতে নীচের স্ক্রিপ্টটি ব্যবহার করি

   #!/bin/bash
   #chkconfig: 345 95 50
   #description: Starts xvfb on display 99
   if [ -z "$1" ]; then
   echo "`basename $0` {start|stop}"
       exit
   fi

   case "$1" in
   start)
       /usr/bin/Xvfb :99 -screen 0 1280x1024x24 &
   ;;

   stop)
       killall Xvfb
   ;;
   esac

1
এই ফাইলটিতে এক্সিকিউট এক্সিকিউটিটি যুক্ত করতে ভুলে যাবেন না: chmod + x xvfb
পাঁচচোর

2
যদিও তাঁর প্রশ্নটি সেন্টোসের জন্য উত্থাপিত হয়েছিল, এটি অন্যান্য বিতরণের জন্যও কার্যকর হয়ে উঠেছে। এটি উবুন্টুতে ভাল কাজ করে; আপনি কেবল update-rc.dপরিবর্তে চালানো প্রয়োজন chkconfig। আরও তথ্যের জন্য এই উত্তরটি দেখুন update-rc.d

1
এটি কীভাবে CentOS এ করবেন তা নিয়ে প্রশ্ন ছিল। বর্তমান CentOS সিস্টেমেড ব্যবহার করে এবং এই উত্তরটি সমস্যার সমাধান করে না। জেডিবিপি-র উত্তর আরও উপযুক্ত।
Yoichi

প্রশ্নটি বিবেচনা করে 6 বছর আগে জিজ্ঞাসা করা হয়েছিল যখন সেন্টোগুলির বর্তমান সংস্করণটি উপস্থিত ছিল না (বা সিস্টেমড আইরিকও ছিল না)। সিস্টেমেড দ্রবণটি যদিও খুব ভাল তবে এটি সম্ভব হলে পছন্দসই বিকল্প হওয়া উচিত।
ট্যাকটিকাস

19

এবং এখন, সিস্টেমযুক্ত উত্তর।

এই প্রশ্নোত্তরগুলি পেরিয়ে প্রায় চার বছর হয়ে গেছে, এবং পৃথিবী পরিবর্তিত হয়েছে যখন তারা তা করেনি। সংস্করণ। থেকে, সেন্টোস সিস্টেমড ব্যবহার করেছে। উবুন্টু প্রশ্ন এবং মন্তব্যে উল্লেখ করা হয়। 15 সংস্করণ থেকে উবুন্টু সিস্টেমডও ব্যবহার করেছে has

যদিও কেউ rcসিস্টেমডের অধীনে সিস্টেম 5 স্ক্রিপ্ট ব্যবহার করতে পারে , তবে কমপক্ষে বলতে গেলে এখানে উত্তরের স্ক্রিপ্টগুলি অত্যন্ত সাবঅপটিমাল। এক অনিন্দ্যরূপে ব্যবহার করা হয় killall, যার ডমন পরিচালনার জন্য সমস্যাগুলি সুপরিচিত; এবং অন্যান্য ক্ষীণ লক ফাইল এবং PID, ফাইল যুক্তিবিদ্যার একটি জগাখিচুড়ি কেউ যার আসলে একটি সার্ভিস ম্যানেজার অধীনে প্রয়োজনীয়, সার্ভিস ম্যানেজার থেকে নিজেদের ডেমন প্রক্রিয়া ট্র্যাক রাখতে।

আমি অন্য কোথাও বলেছি, আপনি যদি এই জিনিসগুলি শিখতে শুরু করেন এবং সেন্টোস লিনাক্স সংস্করণ or বা তারপরে বা উবুন্টু লিনাক্স সংস্করণ ১৫ বা তার বেশি পরে rcথাকেন তবে প্রথমে সিস্টেম 5 স্ক্রিপ্ট দিয়ে শুরু করবেন না । সিস্টেমড ইউনিট ফাইলগুলি দিয়ে শুরু করুন।

একাধিক Xvfb পরিষেবাদির জন্য একটি টেম্পলেট

সরল xvfb.serviceXvfb জন্য systemd ইউনিট ফাইল পাওয়া যাবে https://www.centos.org/forums/viewtopic.php?f=48&t=49080#p208363 এবং https://askubuntu.com/a/621256/43344 । তবে, আমি যেমনটি পরে উল্লেখ করেছি যে কেউ একটি অস্থির পদ্ধতিও গ্রহণ করতে পারে:

[ইউনিট]
বিবরণ = ভার্চুয়াল ফ্রেম বাফার এক্স সার্ভার% I প্রদর্শনের জন্য
= Network.target পর

[পরিষেবা]
এক্সিকিস্টার্ট = / ইউএসআর / বিন / এক্সভিএফবি% আই-স্ক্রিন 0 1280x1024x24

[ইনস্টল করুন]
WantedBy = multi-user.target

স্থানীয়ভাবে লিখিত, নন-সিস্টেম নন-প্যাকেজড, সিস্টেম-ওয়াইডের জন্য ইউনিট ফাইল (প্রতি ব্যবহারকারীর বিপরীতে) পরিষেবার ক্ষেত্রে এটি /etc/systemd/system/xvfb@.serviceঅবশ্যই যায় ।

সেবা নিয়ন্ত্রণ

একটি পছন্দসই প্রদর্শন নম্বর সহ একটি প্রকৃত নামকৃত পরিষেবাতে টেমপ্লেট ইনস্ট্যান্ট করে। প্রদর্শনের জন্য :99, সুতরাং একটি প্রকৃত পরিষেবা উদাহরণ রয়েছে xvfb@:99.service

  • এর সাথে বুটস্ট্র্যাপের সাথে অটো-স্টার্টে পরিষেবা সেট করুন systemctl enable xvfb@:99.service
  • আনসেট স্বয়ংক্রিয় শুরু সঙ্গে সেবা systemctl disable xvfb@:99.service
  • ম্যানুয়ালি দিয়ে পরিষেবাটি শুরু করুন systemctl start xvfb@:99.service
  • ম্যানুয়ালি দিয়ে পরিষেবাটি বন্ধ করুন systemctl stop xvfb@:99.service
  • বর্তমানের পরিষেবার স্থিতিটি বিশদ সহ নিরীক্ষণ করুন systemctl status xvfb@:99.service

আরও পড়া


"সিস্টেম পরিষেবাদিতে xvfb যুক্ত করার" লিঙ্কটি মারা গেছে।
মনীষ

উল্লিখিত সুপার ব্যবহারকারী প্রশ্নটি স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়েছে। ভাগ্যক্রমে, প্রশ্নকর্তা এটি বহু পোস্ট করেছেন। ☺
জেডিবিপি

4

এটি সম্পাদন করার জন্য একটি দুর্দান্ত থ্রি স্ক্রিপ্ট এখানে:

http://onemoretech.wordpress.com/2009/05/27/an-xvfb-init-script/

লিপিটি হ'ল:

#!/bin/bash
#
# /etc/rc.d/init.d/xvfbd
#
# chkconfig: 345 95 28
# description: Starts/Stops X Virtual Framebuffer server
# processname: Xvfb
#

. /etc/init.d/functions

[ "${NETWORKING}" = "no" ] && exit 0

PROG="/usr/X11R6/bin/Xvfb"
PROG_OPTIONS=":5 -screen 0 640x480x24"
PROG_OUTPUT="/tmp/Xvfb.out"

case "$1" in
    start)
        echo -n "Starting : X Virtual Frame Buffer "
        $PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 &
        disown -ar
        /bin/usleep 500000
        status Xvfb & >/dev/null && echo_success || echo_failure
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            /bin/touch /var/lock/subsys/Xvfb
            /sbin/pidof -o  %PPID -x Xvfb > /var/run/Xvfb.pid
        fi
        echo
        ;;
    stop)
        echo -n "Shutting down : X Virtual Frame Buffer"
        killproc $PROG
        RETVAL=$?
        [ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb
 /var/run/Xvfb.pid
        echo
        ;;
    restart|reload)
        $0 stop
        $0 start
        RETVAL=$?
        ;;
    status)
        status Xvfb
        RETVAL=$?
        ;;
    *)
     echo $"Usage: $0 (start|stop|restart|reload|status)"
     exit 1
esac

exit $RETVAL

স্ক্রিপ্টটি xvfbd হিসাবে সংরক্ষণ করুন এবং স্ক্রিপ্টটি অনুলিপি করুন /etc/init.d, তারপরে নিম্নলিখিত কমান্ডটি চালান:

sudo chkconfig --add xvfbd

1

সহজ উপায় হ'ল /etc/rc.localফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করা (এটি সেখানে না থাকলে একটি তৈরি করুন):

Xvfb :0 -screen 0 1024x768x16 &

বুটে এক্স ভার্চুয়াল ফ্রেমবফার শুরু করতে।


-2

আপনি যদি কম্পিউটার বুটে কিছু শুরু বা চালু করতে চান তবে আপনি আরও সহজ উপায় ব্যবহার করতে পারেন।

রেডহাট / সেন্টোস-এ, এই ফাইলটিতে আপনার স্ক্রিপ্ট লাইন যুক্ত করুন: /etc/rc.d/rc.local


আমি আপনাকে হ্রাস করি নি, তবে আমি মনে করি এটি কেবল সিস্টেম ভি এর পক্ষে কাজ করেছে
ডোনাতো

আমি আজ এটি একটি ভ্যানিলা সেন্টোস system সিস্টেমে চেষ্টা করেছি (কারণ আমি অলস), এবং এটি কাজ করেছে, এক্সভিএফবি চালু করে।
ক্লাস্টারডুড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.