লিনাক্স: কমান্ড লাইনের সাহায্যে একটি প্রোগ্রাম বন্ধ করুন (এটি হত্যা করবেন না)


21

কিছু অ্যাপ্লিকেশন কেবল একটি চলমান উদাহরণকে অনুমতি দেয় (যেমন আপনি যদি একই কর্মক্ষেত্রটি ব্যবহার করতে চান তবে গ্রহণের মতো)। সুতরাং আমি যদি অন্য কোনও স্থান থেকে লগ ইন করি তবে আমি পূর্বে অন্য কোনও স্থান থেকে লগ ইন করার পরে খোলা অ্যাপ্লিকেশনটি মেরে / বন্ধ করতে হবে।

আমি চলমান প্রক্রিয়াটি হত্যার জন্য সর্বদা কিল কমান্ড ব্যবহার করি। তবে, আপনি যদি কোনও প্রক্রিয়া হত্যা করেন তবে এটি এমন কিছু রাজ্য সংরক্ষণ করবে না যা ভবিষ্যতের ব্যবহারের জন্য কার্যকর are তবে, যদি আপনি এটি বন্ধ করুন বোতামে ক্লিক করে সঠিকভাবে "বন্ধ" করেন, তবে এটি সঠিকভাবে রাজ্যগুলিকে সংরক্ষণ করবে।

কমান্ড লাইন থেকে কোনও অ্যাপ্লিকেশন সঠিকভাবে "বন্ধ" করার উপায় আছে কি? আমি জানি এটি অ্যাপ্লিকেশনগুলির থেকে পৃথক হতে পারে, সুতরাং আসুন আমরা আরও জেনেরিক হয়ে উঠি: অন্য চলমান অ্যাপ্লিকেশনটিতে কীভাবে সংকেত পাঠানো যায় এবং এই সংকেতটি ঠিক তেমনভাবে কাজ করে যেমন আমরা উপরের বারের "ক্লোজ" বোতামটি ক্লিক করি?


2
আমাদের কি ধরে নেওয়া উচিত যে VNC- র সাহায্যে ডেস্কটপটি দূর থেকে অ্যাক্সেস করা উচিত এবং তারপরে গ্রাফিক্যালি ক্লিক করা খুব বেশি ওভারহেড।
ব্রায়ান সুইফট

উত্তর:


33

ডিফল্টরূপে, কিল কমান্ড SIGTERMচলমান প্রক্রিয়াতে (সমাপ্তি সংকেত) প্রেরণ করবে । ভিন্ন SIGKILL, যা জোর করে প্রতিক্রিয়া না করার প্রক্রিয়াটি প্রক্রিয়াটিকে হত্যা করবে, SIGTERMসংকেতটি প্রক্রিয়া দ্বারা বাধা দেওয়া যেতে পারে, এটি করুণভাবে শেষ করতে দেয়। এটি প্রকৃতপক্ষে করুণভাবে শেষ করে কিনা তা সম্পূর্ণ প্রক্রিয়াটির উপর নির্ভরশীল; এটি ঠিক সহজেই নিজেকে মেরে ফেলতে পারে বা সিগন্যালটিকে পুরোপুরি উপেক্ষা করতে পারে।

আপনি নিশ্চিত করতে পারেন যে আপনি SIGTERMঅন্য কোনও সিগন্যালের পরিবর্তে কমান্ড লাইনে এটি স্পষ্ট করে প্রেরণ করছেন:

kill -s TERM <pid>

1
হ্যাঁ, ওপি'র ভিত্তিটি মিথ্যা। killকমান্ড একটি সুতনু শাটডাউন চেষ্টা করে। যদি সেই ক্ষেত্রে অ্যাপ্লিকেশনটি পরিষ্কারভাবে বন্ধ না হয় তবে এটি ভেঙে গেছে। (এবং অ্যাপ্লিকেশনগুলির বিশাল অংশটি ভাঙা হয়নি))
ডেভিড শোয়ার্জ

2
ফায়ারফক্স মনে হচ্ছে (ভাঙ্গা)। আমি যদি চালনা করি তবে kill -s TERM <firefox-pid>এটি নিখুঁতভাবে বন্ধ হবে না এবং যখন আমি আবার এটি শুরু করি তখন এটি আমাকে জিজ্ঞাসা করে যে আমি ক্র্যাশ সেশনটি পুনরুদ্ধার করতে চাই কিনা। : দীর্ঘশ্বাস:
উইলসন এফ

6

মনে রাখবেন pkillপরিবর্তে killTERM নির্দিষ্ট করার জন্য সিনট্যাক্সটি ব্যবহার করার পরিবর্তে :

pkill -TERM <process-name>

pkill হত্যার মতো, তবে আপনি আইডির পরিবর্তে প্রক্রিয়াটির নামটি ব্যবহার করতে পারেন। man pkill

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