ভিএলসির এই আচরণ কি স্বাভাবিক?


11

আমি উবুন্টুতে রয়েছি 16.04 4ক্যের সর্বশেষ আপডেটগুলি ইনস্টল করেছি, আমার কাছে বাজারে অন্যতম সেরা আসুস গেমিং ল্যাপটপ রয়েছে, ভিএলসি ইনস্টল করা আছে তবে আমি কখনই এটি ব্যবহার করি না।

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

আজ, আমি যখন কাজ করছিলাম তখন আমি ভক্তরা একই জিনিসটি লক্ষ্য করছিলাম যা তারা বন্ধ করার সময় সাধারণত করেন। আমি দৌড়ে topলক্ষ্য করেছি যে আমার ভোক্তাদের 122% সিপিইউর মতো ব্যবহারকারীর অধীনে 2 টি ভিএলসি চালানো হচ্ছে, যদিও আমি আবার ভিএলসি ব্যবহার করি না, এবং আমি কোনও প্রোগ্রাম ব্যবহার করছি না যা ভিএলসি উপর নির্ভর করে।

আমি করার চেষ্টা sudo kill <pid>এবং sudo killall <pid>এবং sudo killall vlcকিন্তু এখনও তারা নিহত হয় নি, যা কখনো আগে আমার ঘটেছে। আমি ওবুন্টু রিসোর্স মনিটর থেকে তাদের হত্যা করেছি, তারা নিহত হয়েছিল এবং শাটডাউন সমস্যাটি স্থির হয়ে গেছে এবং সবকিছু স্বাভাবিক অবস্থায় ফিরে গেছে।

এর আগে কারও কি এমন ঘটনা ঘটেছে?


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

2
কেন এটি হচ্ছে তা যদি আপনি জানতে আগ্রহী হন, তবে ps aux | grep " $(echo -n $(pgrep vlc | xargs ps -o ppid | tail -n +2 | tr -d ' ') | sed 's/ / \\| /g') "এটি পরবর্তী সময় ঘটতে পারে। এটি ভিএলসির সমস্ত চলমান দৃষ্টান্ত খুঁজে পেতে পারে, তাদের প্রত্যেকের জন্য প্যারেন্ট পিআইডি পেতে এবং তারপরে আউটপুটে প্যারেন্ট পিআইডি অনুসন্ধান করবে ps aux। এটি সমস্যাটি সন্ধানে সহায়তা করতে পারে।
বেনামে

3
রেকর্ডের জন্য, sudo kill -9 <pid>সম্ভবত যেখানে কাজ killকরেননি যেখানে ঠিক হয়নি। এর -9অর্থ "অত্যন্ত মারাত্মক উপায়ে চরম কুসংস্কারের সাথে চালিত যে কোনও কিছুকে হত্যা করুন"। এটি খুব বেশি টিকে থাকতে পারে না। ছাড়া -9, এটি আরও অনেকটা "প্লিজ মারা যান? প্লিজ, দয়া করে উপরে চেরি লাগান?"
ট্রাইসিস

1
@ ট্রিসিস: সতর্ক থাকুন kill -9, এটি বিপজ্জনক। উদাহরণস্বরূপ যদি অ্যাপ্লিকেশনটি একটি অস্থায়ী ফাইল তৈরি করেছে তবে /var/lockএটি সরানো হবে না। একইভাবে, বাফারগুলি ফ্লাশ করা হবে না, ডাটাবেস লেনদেনের প্রতিশ্রুতি দেওয়া হবে না, ইত্যাদি written কোথাও কিছু লেখা থাকলে দূষিত বা হারিয়ে যাওয়া ডেটা দিয়ে শেষ করতে পারেন। ভিএলসি সম্ভবত সেগুলির কোনও কাজ করছে না, তবে আমি ধরে নেওয়ার আগে সমস্যাটি বোঝার চেষ্টা করার পরামর্শ দেব।
কেভিন

1
বিটিডাব্লু, আমার ভিএলসি সাথে ঝুলন্ত এবং অন্যান্য "অদ্ভুত জিনিস" করানোর ক্ষেত্রে আমার যে 99% সমস্যা ছিল সেগুলি ভিডিও ডিকোডিংয়ের জন্য হার্ডওয়্যার ত্বরণ ব্যবহার করার চেষ্টা করার কারণে, বা "ভুল" (যার অর্থ যাই হোক না কেন) ভিডিও ব্যাকএন্ড ব্যবহার করার কারণে হয়েছিল; আমি সেই স্টাফ দিয়ে ফিডল করার চেষ্টা করব (কোডেকগুলির জন্য এইচডাব্লু ত্বরণকে অক্ষম করুন, ভিডিও আউটপুট ব্যাকএন্ড পরিবর্তন করার চেষ্টা করুন) এবং দেখুন যে এ থেকে ভাল কিছু আসে কিনা।
মাত্তেও ইটালিয়া

উত্তর:


10

আমি ভিএলসি প্লেয়ারের সাথে একই রকম সমস্যায় পড়ছি। তবে পার্থক্যটি আমি এটি প্রায়শই ব্যবহার করি। Issueক্যের সাথে উবুন্টু 16.04 এ এই ইস্যুটির জন্য একটি সম্ভাব্য (সম্পূর্ণ প্রমাণিত নয়) এখানে কার্যকর।

এই উত্তর অনুসারে আমরা চলমান অ্যাপ্লিকেশন ডেস্কটপ ফাইলের নাম আছে কিনা তা পরীক্ষা করতে পারি vlc। যদি কেউ না থাকে তবে আমরা ভিএলসির সমস্ত প্রক্রিয়া মেরে ফেলার চেষ্টা করতে পারি। এই উদ্দেশ্যে, একটি এক্সিকিউটেবল ফাইল তৈরি করুন, যার নাম দেওয়া হয়েছে ~/bin/vlc-killer.shএবং নীচের লাইনগুলিকে এর বিষয়বস্তু হিসাবে যুক্ত করুন (এখানে রফতানি করা এনভভরদের সম্পর্কে একটি উল্লেখ রয়েছে):

#!/bin/bash

# Check whether the user is logged-in: if not then exit
if [[ -z "$(pgrep gnome-session -n -U $UID)" ]]; then exit; fi

# Export the current desktop session environment variables
export $(xargs -0 -a "/proc/$(pgrep gnome-session -n -U $UID)/environ")

# Test whether there is any VLC RunningApplicationsDesktopFile
/usr/bin/qdbus org.ayatana.bamf /org/ayatana/bamf/matcher \
org.ayatana.bamf.matcher.RunningApplicationsDesktopFiles | grep -q 'vlc'

# If not killall VLC processes
if [[ $? -ne 0 ]]; then /usr/bin/killall vlc; fi

তারপরে সম্পাদনা ( crontab -e) সম্পাদনের জন্য ব্যবহারকারীর ক্রোনট্যাব খুলুন এবং নীচে নীচের কাজটি (যা আমাদের স্ক্রিপ্টটি প্রতি মিনিটে কার্যকর করবে) প্রয়োগ করুন:

* * * * * $HOME/bin/vlc-killer.sh >/dev/null 2>&1

1
যদি আমি ঠিক আছি তবে এটি কেবল তখনই কাজ করে যখন কমপক্ষে একটি উদাহরণ vlcজিইআইআইয়ের মাধ্যমে শুরু হয়েছিল। আপনি যদি vlc movie.mpgকমান্ড লাইনটি (যেমন আমি আছি) থেকে পুরোপুরি চলতে ব্যবহৃত হয় তবে এটি vlcএক মিনিটের পরে প্রক্রিয়াটি হারাবে। তবে যাইহোক, দুর্দান্ত সমাধান এবং +1 +
পার্লডাক

2
@ পার্লডাক, যখন একটি সক্রিয় ভিএলসি "আইকন" রয়েছে ( ড্যাশ লঞ্চারে ) স্ক্রিপ্টটি কাজ করে, ভিএলসি একটি .ডেস্কটপ ফাইল দ্বারা শুরু করা হয়েছে বা সিএলআই দ্বারা নির্ধারিত হোক না কেন।
pa4080

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