লিনাক্সে একটি ভিএনসিসিওশন মারার সঠিক উপায় কী?


25

আমি যখন আমার দূরবর্তী linuxবাক্সে নিম্নলিখিত কমান্ডটি চালিত করি যা আমি আমার windows 7ল্যাপটপ থেকে সংযোগ VNCকরি আমি নিম্নলিখিতটি পাই:

 [subhrcho@slc04lyo ~]$ ps -ef|grep vnc
subhrcho 20113 19804  0 21:40 pts/8    00:00:00 grep vnc
subhrcho 27486     1  0 Jan28 ?        00:05:35 Xvnc :1 -desktop slc04lyo:1 (subhrcho) -httpd /usr/share/vnc/classes -auth /home/subhrcho/.Xauthority -geometry 1680x1050 -depth 16 -rfbwait 30000 -rfbauth /home/subhrcho/.vnc/passwd -rfbport 5901 -pn
subhrcho 27493     1  0 Jan28 ?        00:00:00 vncconfig -iconic

আমি কীভাবে এই সেশনটি মার্জিতভাবে হত্যা করতে পারি? আমি জানি kill -9 <pid>এটি করবে তবে আমি মনে করি এটি একটি শক্তিশালী পরিষ্কার এবং এটি ফাইলগুলির দূষিত হতে পারে।

পিএস: আমি ভিএনসিভার থেকে কিল অপশনটি ব্যবহার করতে এই উত্স থেকে পড়েছি তবে কীভাবে প্রদর্শন # বের করতে হবে তা নিশ্চিত নই।

উত্তর:


30

যেমন আপনি লক্ষ্য করেছেন, এর থেকে man vncserver:

  -kill :display#
          This kills a VNC desktop previously started with vncserver. It does
          this by killing the Xvnc process, whose process ID is stored in the
          file "$HOME/.vnc/host:display#.pid". It actually ignores anything
          preceding a ":" in its argument. This can be useful so you can write
          "vncserver -kill $DISPLAY", for example at the end of your xstartup
          file after a particular application exits.

যদি কোনও ম্যানুয়ালি (এবং আলাদাভাবে) সেট না করে থাকে তবে ডিসপ্লে নম্বরটি বন্দর নম্বরটির সাথে সংযুক্ত থাকে where

Display number = (Port number) ‒ 5900

যেমন পোর্ট 5901 → প্রদর্শন: 1। এই তথ্যটি পাওয়া যাবে man Xvnc( vncserverকেবলমাত্র একটি মোড়ক স্ক্রিপ্ট যা এই সরঞ্জামটিকে কল করে) যেখানে এটি বলে:

   -rfbport port
          Specifies the TCP port on which Xvnc listens for connections from
          viewers (the protocol used in VNC is called RFB - "remote
          framebuffer").  The default is 5900 plus the display number.

যদি আপনি হৃদয় দিয়ে নম্বরটি জানেন না (তবে আপনি যে কোনও উপায়ে সার্ভারের সাথে সংযোগ স্থাপন করতে চলেছেন তবে আপনার এটি জানা দরকার), আপনি ps ax | grep vncতথ্যের জন্য উদাহরণস্বরূপ পরীক্ষা করতে পারেন । আমি যদি স্থানীয়ভাবে এটি করি তবে আমি প্রক্রিয়াগুলি দেখতে পাচ্ছি

25697 ?        S     55:38 Xvnc4 :1 [...]
[...]
30481 ?        S     17:57 Xvnc4 :2 [...]

এবং এইভাবে আমি জানি যে তারা প্রদর্শন সংখ্যা :1এবং :2যথাক্রমে ভিএনসি সার্ভারগুলিকে উপস্থাপন করে এবং এর দ্বারা হত্যা করা যেতে পারে

vncserver -kill :1
vncserver -kill :2

আপনার ক্ষেত্রে, আপনি দেখতে পাবেন যে প্রদর্শন নম্বরটি :1আপনার psআউটপুটে তালিকাভুক্ত সার্ভারের জন্য ।


1

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

সুতরাং আমি তাদের ম্যানুয়ালি হত্যা করতে হয়েছিল। আমি হত্যা -9 চেষ্টা করেছি, এবং তারপর আর আরডিপি দিয়ে আর লগ ইন করতে পারি না। আমি xrdp_mm_process_login_response: login failedলগ ইন করার চেষ্টা করার সময় পেয়েছিলাম ।

উত্তরটি এখানে পাওয়া গেল: http://linuxtoolkit.blogspot.com/2013/03/xrdpmmprocessloginresponse-login-failed.html

মূলত, এক্সভিএনসি সার্ভারটি মারা যাওয়ার পরে একটি সেশন ফাইল পরিষ্কার হয় না। ফাইলটি প্রদর্শনের জন্য নামকরণ করা হয়েছে, সুতরাং আপনি যদি ডিসপ্লেতে থাকেন: 12, এটি /tmp/.X11-unix/X12। ফাইলটি পরে মুছুন kill -9এবং আপনি ব্যবসায় ফিরে আসবেন।


স্ক্রিপ্ট আমি নিষ্ক্রিয় সেশনগুলি অটো-কিল করতে লিখেছিলাম: gist.github.com/mnebuerquo/e825530cf2bfd363b6c3cd82fe697d94
মেনবুয়েরোক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.