কীভাবে তার নামের সাথে কোনও ডিমনকে মারাত্মকভাবে হত্যা করা যায়?


16

আমি সাধারণত একটি প্রক্রিয়া সঙ্গে হত্যা killall

killall markdoc

তবে আমি নিশ্চিত নই যে এই আদেশটি প্রক্রিয়াটি নিখুঁতভাবে শেষ করে কিনা। এই আদেশটি কি করুণ সমাপ্তি অর্জন করবে? যদি তা না হয় তবে আমি কীভাবে এর নাম দিয়ে কোনও প্রক্রিয়া গ্রেফতার করতে পারি?



আমি উবুন্টু 10.04 এলটিএস সার্ভার x64 ব্যবহার করছি । কী সেই ডেমন?
Eonil

এটি ডিমনগুলি শুরু / থামানো এবং পিড ফাইলগুলির মতো সম্পর্কিত তথ্য পরিচালনার জন্য একটি সাধারণ সরঞ্জাম। এটি উবুন্টুতে উপস্থিত রয়েছে, এর ম্যান পৃষ্ঠাটি দেখুন
manatwork

উত্তর:


19

আপনার প্রশ্নটি পরিষ্কার নয়, আপনি শিরোনামে একটি ডিমন সম্পর্কে কথা বলেন, তবে দেহে কেবল একটি জেনেরিক প্রক্রিয়া সম্পর্কে কথা বলেন।

ডেমনের জন্য এটি বন্ধ করার সুনির্দিষ্ট উপায় রয়েছে, উদাহরণস্বরূপ ডিবিয়ান আপনার কাছে have

    service daemon-name stop

অথবা

    /etc/init.d/daemon-name stop

অন্যান্য বিতরণ / ওএসে ব্যবহৃত অন্যান্য ইনসাইট স্ক্রিপ্ট মানগুলির জন্য অনুরূপ সিনট্যাক্স বিদ্যমান।

নন-ডিমন প্রক্রিয়াটি হারাতে, ধরুন এটি কোনওভাবে নিয়ন্ত্রণের বাইরে চলে গেছে, আপনি নিরাপদে ব্যবহার করতে পারেন killallবা pkillপ্রদত্ত যে তারা ডিফল্টরূপে SIGTERM(15) সংকেত ব্যবহার করে , এবং কোনও শালীনভাবে লিখিত অ্যাপ্লিকেশনটি ধরা পড়ে এবং এই সংকেতটি পাওয়ার পরে নিখুঁতভাবে প্রস্থান করা উচিত । যদি একই নামের সাথে অনেকগুলি থাকে তবে এই ইউটিলিটিগুলি আরও একটি প্রক্রিয়াটিকে মেরে ফেলতে পারে তা বিবেচনা করুন।

যদি এটি কাজ না করে, আপনি SIGINT(2), তারপরে SIGHUP(1) চেষ্টা করতে পারেন এবং একটি সর্বশেষ উপায় হিসাবে SIGKILL(9)। এই শেষ সংকেতটি অ্যাপ্লিকেশন দ্বারা ধরা যাবে না, যাতে এটি কোনও পরিষ্কার-পরিচ্ছন্নতা সম্পাদন করতে না পারে। এই কারণে প্রতিবার এটি এড়ানো উচিত।

উভয়ই pkillএবং killallফর্ম -NAMEহিসাবে একটি সংকেত পরামিতি গ্রহণ করুন

pkill -INT process-name

ধন্যবাদ. আসলে আমার আসল প্রশ্নটি ছিল markdoc serve &ও সম্পর্কে svnserve -d। আমি মনে করি এটি
একপ্রকার

killallহত্যাকারী!
xdevs23

3

বিএসডি-এর মতো এবং অন্যান্য ডিস্ট্রোগুলিতে আপনার প্রায়শই /etc/rc.d/ এ স্ক্রিপ্ট থাকতে পারে যা সাধারণত আপনার সিস্টেমে ডেমোন শুরু, পুনরায় আরম্ভ এবং বন্ধ করতে পরিচালিত করে। ডেমন থামানোর জন্য আপনি স্ক্রিপ্টগুলিকে পরম পথের সাথে কল করতে পারেন যেমন:

# /etc/rc.d/acpid stop

বা কমান্ডটি ব্যবহার করুন:

# rc.d stop acpid

আপনার সিস্টেমগুলি শুরু এবং থামানো ডেমনগুলি দেখানোর জন্য আমি এই স্ক্রিপ্টটি ব্যবহার করার পরামর্শ দিচ্ছি:

#!/bin/bash

chk_status(){
  target=$1
  if [[ $target != "functions" && $target !=  "functions.d" ]]
  then
    if [[ -f "/var/run/daemons/$target" ]]
     then
       stat="\e[1;32m[RUNNING]"
     else
       stat="\e[1;31m[STOPPED]"
     fi

    printf "$stat \t\e[1;34m$target\e[0;0m\n"
  fi
}

daemons=($(for daemon in /etc/rc.d/*; do echo "${daemon#\/etc\/rc.d\/}"; done))

if [[ $1 != "" ]]
then
 chk_status $1
else
 for d in "${daemons[@]}"; do
   chk_status $d
 done | sort
fi

0

স্ক্রিপ্টে killprocউপলব্ধ ফাংশনটি পরীক্ষা করুন /etc/init.d/functions, ফাইলটি উত্স করুন এবং ফাংশনটি ব্যবহার করুন। অথবা তারা উদ্দেশ্যমূলকভাবে কাজ করছে কিনা তা যাচাই করতে এবং তারপরে সেগুলি ব্যবহার করতে ব্যবহার করুন pgrepএবং pkillইউটিলিটিগুলি। উদাহরণ: pkill -SIGTERM mysqldমাইএসকিএলডি নিরাপদ শাটডাউন করার জন্য মেরে যাওয়ার আগে ডিস্কে ডাটাবেসগুলি ফ্লাশ করার জন্য টিআরএম কিল সংকেত প্রেরণ করবে।

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