আমি কীভাবে উবুন্টুতে প্রক্রিয়াগুলিকে হত্যা করব?


149

কীভাবে আমি আমার নিজের অ-রুট অ্যাকাউন্ট দ্বারা চালিত সমস্ত প্রক্রিয়াটিকে হত্যা করব?

আমার কয়েকটি স্পিনিং এসএমবিডি প্রক্রিয়া রয়েছে যা আমি আমার উইন্ডোজ মেশিন থেকে সৃষ্টি করেছি এবং তাই আমি লিনাক্স সার্ভারে টেলনেট করেছি এবং আমি এই স্পিনিং প্রক্রিয়াগুলিকে হত্যা করতে চাই। আমার কাছে পরিষেবাগুলি পুনঃসূচনা করার বা মেশিনটি পুনরায় চালু করার কোনও ক্ষমতা নেই।

উত্তর:


172

আপনার যে সমস্ত প্রক্রিয়াটি হত্যার অনুমতি রয়েছে তা মুছে ফেলার জন্য কেবল কমান্ডটি চালান

kill -15 -1বা kill -9 -1পছন্দসই আচরণ উপর নির্ভর করে ( man killবিশদ জন্য ব্যবহার করুন)

একটি নির্দিষ্ট প্রক্রিয়াটি মারার জন্য, ফায়ারফক্স বলুন, সহজভাবে চালান

pkill firefoxবা killall firefoxআপনি যে আচরণ চান তার উপর নির্ভর করে: 'কিল্ল' এবং 'পিল' এর মধ্যে পার্থক্য কী?

আপনি যদি দেখতে চান কোন প্রক্রিয়াগুলি চলছে তা কমান্ডটি ব্যবহার করুন

ps -ef

আপনি যদি ব্যবহারকারী বব দ্বারা সমস্ত প্রক্রিয়া সন্ধান করতে চান তবে এটি সাহায্য করতে পারে

pgrep -l -u bob

অথবা

ps -ef | grep bob

4
আমি শুরু করতাম kill -15 -1, এবং কেবল kill -9 -1যদি জেদী প্রক্রিয়াগুলি থাকে তবে আমি কেবল এগিয়ে যাব এবং আমি জানি আমি কী করছি । ডাটাবেস লেনদেনের মাঝখানে হতে পারে এলোমেলোভাবে প্রক্রিয়াজাতকরণগুলি হ'ল আপনার পরামর্শ অনুসারে সাধারণভাবে কিছু করা উচিত নয়।
সাইমন রিখটার

এছাড়াও, ফায়ারফক্সের প্রক্রিয়াটির নাম দেওয়া হয়েছে firefox-bin
সাইমন রিখটার

না, আপনি চলমান চেষ্টা করতে পারেন killall firefoxএবং killall firefox-binএবং দেখুন সেখানে কি কাজ করে। আমি আপনার প্রথম মন্তব্যে একমত।
ste_kwr

ধন্যবাদ @ স্টেট_কিউআর, আপনার নির্দেশাবলী নিয়ে কাজ করেছেন, দু'দিন লড়াই করার পরে ...
জাভা.বেগনিনার

পিআইডি না লাগানোর সুবিধাটি ক্রোন জবগুলিতে। নাম ব্যবহার করা পরিষ্কারভাবে কাজ করে।
এসডসোলার

56

ব্যবহার করুন sudo kill <pid>বাsudo killall <process-name>


3
আমি মনে করি না যে এটি এই প্রশ্নের সাথে প্রাসঙ্গিক, আপনি সুডো ব্যবহার করছেন - প্রশ্নটিতে উল্লিখিত হিসাবে ওপি-তে কোনও সুযোগ-সুবিধা নেই।
pl1nk

ওপিতে বিশেষাধিকার নেই, দয়া করে আপনার উত্তরটি সম্পাদনা করুন অথবা এটি মুছে ফেলা বা "উত্তর নয়" হিসাবে একটি মন্তব্যে রূপান্তরিত হতে পারে।
ইশ

যদি তার কোনও অধিকার না থাকে তবে তাকে কেবল <পিড> বা কিল্ল << প্রসেস-নাম> হত্যা করতে হবে আমি এটি কেবলমাত্র আমার অ মূল অ্যাকাউন্টে ব্যবহার করেছি, যদি আমি উত্তরটি না পাই তবে আমি এটি করতে সক্ষম হবো না ।
শাইলিন অর্টিজ

20

আসুন আরও কিছু চেষ্টা করুন:

sudo apt-get install htop 

topকমান্ড আপনার সিস্টেমের রিসোর্সের ব্যবহার দেখতে এবং প্রসেস যে অধিকাংশ সিস্টেম সম্পদগুলি গ্রহণ করা হয় দেখতে ঐতিহ্যগত উপায়। শীর্ষে সর্বাধিক সিপিইউ ব্যবহার করে প্রক্রিয়াগুলির তালিকা প্রদর্শন করা হয়।

htopসহজে বোঝার জন্য সহজ লেআউট সহ একই তথ্য প্রদর্শন করে। এটি আপনাকে তীর কীগুলির সাহায্যে প্রক্রিয়াগুলি নির্বাচন করতে এবং ক্রিয়াগুলি সম্পাদন করতে দেয় যেমন Fকীগুলি দিয়ে তাদের হত্যা করা বা তাদের অগ্রাধিকার পরিবর্তন করা ।


16

তুমি ব্যবহার করতে পার

ps -ax | grep application name 

যদি আপনার অনুসন্ধানে ফায়ারফক্সের মতো টার্মিনাল টাইপ হয় তবে ps -ax | grep firefoxএটি সংশ্লিষ্ট অ্যাপ্লিকেশনটির প্রসেস আইডি দেখায়। killপ্রক্রিয়া আইডি = 1317 যদি আপনি আদেশটি দিয়ে এই অ্যাপ্লিকেশনটি বন্ধ করতে পারেন,

kill -9 1317

13

আমি ব্যবহার করব xkillxkillএকটি টার্মিনালে প্রবেশ করুন এবং উইন্ডোতে ক্লিক করুন, বা প্রবেশ করুন xkillএবং প্রক্রিয়া আইডি এবং এটি সমাপ্ত হবে।

সম্পর্কে আরও জানুন পাওয়া xkillউপর x.org।


1
পিকিল এনডি এটির পরে ফ্রিকোয়েন্সি এ দ্বিতীয় ব্যবহার করুন। +1
সের্গেই কলডিয়্যাজনি

xkill এই ক্ষেত্রে কাজ করে না ...
পাইথোনিক

@ পাইথনিক কী ক্ষেত্রে এটি?
আলভার

1
সে একটি
উইন্ডোবিহীন

9

কোনও ব্যবহারকারীর মালিকানাধীন সমস্ত প্রক্রিয়া হত্যার চেষ্টা করতে usernameচালান:

pkill -U username

7

আমি আপনার সমস্যাটি 2 ভাগে বিভক্ত করতাম:

1) আমার দ্বারা শুরু করা প্রক্রিয়াগুলি কীভাবে খুঁজে পাব? এটি চালান:

ps -u `whoami`

whoamiধরো যদি আপনি, আপনি যে অ্যাকাউন্টটি ব্যবহার করছেন নাম জানি না অন্যথায় শুধু ফিরে উদ্ধৃতি চিহ্ন বিনা অ্যাকাউন্টের নাম টাইপ করুন।

এটি আপনার অ্যাকাউন্টের দ্বারা মুছে ফেলা হতে পারে এমন সমস্ত প্রক্রিয়া তালিকাবদ্ধ করবে।

2) psকমান্ডটি প্রক্রিয়া নম্বর, টিটিওয়াই, সময় এবং সিএমডি তালিকাভুক্ত করবে। প্রক্রিয়া আইডি প্রথম কলাম হয়। প্রক্রিয়াটি মারার জন্য এই নম্বরটি ব্যবহার করুন। প্রক্রিয়াটি হত্যা করার সময় সাবধানতা অবলম্বন করুন। আপনি ভুল প্রক্রিয়াটি মেরে ফেললে আপনি কিছু ভঙ্গ করতে পারেন। কোনও প্রক্রিয়াটি killহারাতে আপনি কমান্ডটি ব্যবহার করবেন , যা প্রক্রিয়াটিতে একটি সিগন্যাল প্রেরণ করে। সংকেতটি প্রক্রিয়াটি কী করা উচিত তা নির্দেশ করে । উদাহরণস্বরূপ, -1প্রক্রিয়াটিতে একটি প্রেরণ কনফিগারেশন ফাইলটি পুনরায় লোড করতে বলবে; একটি প্রেরণ -2যে প্রক্রিয়াতে নিয়ন্ত্রণ + সি টিপে সমান; -9কার্নেলটি প্রক্রিয়াটিতে কোনও যোগাযোগ না করে প্রক্রিয়াটি ত্যাগ করার কারণ ঘটায়।

ধরা যাক পিএস-ইউ whoamiএরকম কিছু ফেরত দিয়েছে

  PID TTY          TIME CMD
 4333 pts/1    00:00:00 fish
 4335 ?        00:00:00 fishd
 4816 ?        00:00:00 intellij
 4868 ?        00:50:42 java
 4939 ?        00:00:19 fsnotifier64
 7667 ?        02:49:08 firefox
 7698 ?        00:00:00 unity-webapps-s

এবং আপনি firefoxপ্রক্রিয়া আইডি দ্বারা প্রক্রিয়াটি হত্যা করতে চেয়েছিলেন , তারপরে আপনি এটি করতে চাই:

kill -1 7667

তারপরে আপনি একই psকমান্ডটি আবার চালাবেন এবং প্রক্রিয়াটি এখনও চলছে কিনা তা পরীক্ষা করে দেখুন। যদি এটি এখনও চলমান থাকে তবে একটি করুন

kill -2 7667

আপনার পথে কাজ করা -9

আপনার অ্যাকাউন্ট থেকে শুরু করা সমস্ত প্রক্রিয়া হত্যার জন্য প্রবেশ করান kill <level> -1। আগের মতো: আপনার পথে কাজ করুন -9

আপনি যদি প্রক্রিয়াটির নামটি জানেন তবে আপনি কেবল যেতে পারেন killall <processname>, যেখানে আপনি হত্যার চেষ্টা করছেন। উদাহরণস্বরূপ: killall fish(মাছ, এই অর্থে, বন্ধুত্বপূর্ণ ইন্টারেক্টিভ শেল)।

এর জন্য ডকুমেন্টেশন killallএখানে পাওয়া যাবে: http://manpages.ubuntu.com/manpages/hardy/man1/killall.1.html


3

এই অ্যাপ্লিকেশনটি দিয়ে আপনি প্রোগ্রামের তালিকা দেখতে পারেন

হিপ ইনস্টল করুন

sudo apt-get install htop

প্রক্রিয়া এবং হত্যা প্রক্রিয়া দেখার জন্য আপনি এটি ইনস্টল করতে এবং খালি মুছতে পারেন

এখানে চিত্র বর্ণনা লিখুন


2

... লিনাক্সের সমস্ত প্রক্রিয়া সংকেতগুলিতে সাড়া দেয়। সিগন্যালগুলি প্রোগ্রামগুলি তাদের আচরণ বন্ধ বা সংশোধন করতে বলার একটি ওএস-স্তরের উপায়।

পিআইডি দ্বারা প্রক্রিয়া সংকেত কীভাবে প্রেরণ করা যায়

প্রোগ্রামে সিগন্যাল দেওয়ার সবচেয়ে সাধারণ উপায় হ'ল কমান্ড কমান্ড।

যেমনটি আপনি আশা করতে পারেন, এই ইউটিলিটির ডিফল্ট কার্যকারিতা হ'ল কোনও প্রক্রিয়া হত্যার চেষ্টা করা হয়েছে:

kill PID_of_target_process

এটি প্রক্রিয়াতে TERM সংকেত প্রেরণ করে। TERM সিগন্যাল প্রক্রিয়াটি দয়া করে অবসান করতে বলে tells এটি প্রোগ্রামটিকে ক্লিন-আপ ক্রিয়াকলাপ সম্পাদন করতে এবং সহজেই প্রস্থান করতে দেয়।

প্রোগ্রামটি যদি দুর্ব্যবহার করছে এবং টিআরএম সিগন্যাল দেওয়ার পরে প্রস্থান না করে, আমরা কেআইএলএল সিগন্যালটি পাস করে সংকেতকে বাড়িয়ে তুলতে পারি:

kill -KILL PID_of_target_process

এটি একটি বিশেষ সংকেত যা প্রোগ্রামে প্রেরণ করা হয় না।

পরিবর্তে, এটি অপারেটিং সিস্টেম কার্নেলকে দেওয়া হয়, যা প্রক্রিয়াটি বন্ধ করে দেয়। এটি সেই প্রোগ্রামগুলিকে বাইপাস করতে ব্যবহৃত হয় যা তাদের কাছে প্রেরিত সিগন্যালগুলিকে উপেক্ষা করে ...


2

আমি স্কাইপকে হত্যা করার জন্য একটি ছোট স্ক্রিপ্ট লিখেছিলাম (আমার ক্ষেত্রে):

kill -s 9 `ps aux | grep skype | head -n 1 | cut -f4 -d" "`

তবে আমি দেখতে পেয়েছি যে ততদিনে যতটা কাজ হয়েছিল, পরের দিন এটি কাজ করে না কারণ পিডটি একটি আলাদা দৈর্ঘ্য ছিল এবং সেখানে জায়গার পরিমাণ আলাদা ছিল there

তারপরে আমি এই সাইটটি জুড়ে এসে চেষ্টা করেছি

pgrep -l -u justin

যা সুবিধামত বিন্যাসে প্রক্রিয়া আউটপুট

[pid] [name]

সুতরাং আমি আমার কোডটি স্ক্রিপ্টে এডজাস্ট করেছি:

kill -s 9 `pgrep -l -u justin | grep skype | cut -f1 -d" "`

এটি যা করে তা হ'ল সমস্ত প্রক্রিয়া justinচলছে (যা কোনও ব্যবহারকারীর নামে পরিবর্তিত হতে পারে) grepযা দেখায় skype(এটি আপনার প্রসেসে পরিবর্তিত হতে পারে) এবং তারপরে পাইপগুলি যে লাইনে cutকেবলমাত্র পিআইডি পড়ে এবং শেষ পর্যন্ত এটি ব্যবহার করে পিআইডি killকমান্ডে এটি হত্যা করতে।


আপনি -l, এবং দৌড়ে গিয়ে pgrep -u justin skypeমেরে ফেলতে পারতেন : pkill -u justin skype(বা pkill -KILL -u justin skypeসিগ্কিল পাঠাতে)।
মুরু

এটি অবশ্যই ইউনিক্স ওয়ে। আপনারা দুজনেই ভাল করেছেন। আমি এটি ব্যবহার করব
এসডসোলার

1

এখানে আমি লিখেছিলাম একটি সাধারণ অজগর স্ক্রিপ্ট, কিলপ্রসেস.পি, যা কোনও কিছুকে ইনপুট হিসাবে গ্রহণ করবে এবং হত্যা করবে।

আমি এই স্ক্রিপ্টটি লিখেছি কারণ আমার কাছে প্রচুর অজগর বা নোড প্রক্রিয়া রয়েছে যা আমি পৃথকভাবে এবং অগ্রগতির মাধ্যমে হত্যা করতে চাই। আমি "কিল্লাল পাইথন" ব্যবহার করতে পারি না কারণ এটি আমার চালিয়ে যাওয়া প্রসেসগুলি বন্ধ করে দেবে।

দয়া করে "কিলপ্রসেস.পি" ফাইলটির নাম দিন, তারপরে আপনি যে স্ক্রিপ্টটি থামাতে চান তার নাম যুক্ত করুন। উদাহরণস্বরূপ: অজগর হত্যা

import os;
import sys;
for arg in sys.argv:
    if(arg!="killProcess.py"):
        process=arg;
        print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
    try:
        pid=int(p);
        print(pid); 
        break;
    except:
        continue;

os.system("kill "+str(pid));

0

আমি উবুন্টুতে একটি প্রক্রিয়া হত্যা করার জন্য নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করেছি ::

পদক্ষেপ 1: গ্রেপ ব্যবহার করে প্রক্রিয়াটির পডটি পান বা আপনি-সি ব্যবহার করতে পারেন ::

ps aux | -C 'filename'

অথবা

ps -ef | -C 'filename'

অথবা

ps aux | grep 'filename'

অথবা

ps -ef | grep 'filename' 

পদক্ষেপ 2: পিড নম্বরটি নোট করুন।

পদক্ষেপ 3: পিড নম্বর সহ 'কিল' কমান্ডটি ব্যবহার করুন:

kill pidnumber

0

Ctrl+ Alt+ Deleteআপনাকে টাস্ক ম্যানেজারটিতে অ্যাক্সেস দেওয়ার জন্য সেট করা যেতে পারে, যেখান থেকে কয়েকটি ক্লিকের মাধ্যমে প্রক্রিয়াগুলি ধ্বংস করা সহজ me

http://ubuntuhandbook.org/index.php/2013/07/use-ctrl-alt-del-task-manager-ubuntu/

https://www.itsmarttricks.com/a-guide-to-kill-pkill-and-killall-commands-to-stop-the-process-in-linux-kill-process-linux/

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