লিনাক্স সার্ভারটি নামানোর জন্য এই আদেশগুলির মধ্যে পার্থক্য কী?


65

পড়া "হল্ট এবং শাট-ডাউন কমান্ড মধ্যে পার্থক্য কি?" , -H / -r বিকল্পগুলির সাথে বা ছাড়াই কমান্ড শাটডাউনটি কী করে তা আমার সাধারণত ধারণা থাকে।

"হলট" কমান্ড সিস্টেমের রান-লেভেল 0-তে বিদ্যুত্প্রবাহ সম্পাদন করে।

"শাটডাউন" কমান্ড -h বা -r কমান্ড ব্যতীত সিস্টেমের রান-লেভেল 1-তে পাওয়ার পাওয়ার অফ করে।

"পাওয়ার অফ" কমান্ডটি কী তা রান-লেভেল 0 বা 1 তে যায়? এই তিনটি আদেশের মধ্যে এটিই কি কেবল প্রধান পার্থক্য?


সম্পর্কিত Askubuntu.com/q/578144/216503
হিমাইল

এটি এমন কিছু বিষয় যা উদাহরণস্বরূপ সোলারিস এবং ফ্রিবিএসডি-র জন্য উল্লেখযোগ্যভাবে পৃথক। (সেখানে তারা সাধারণত (প্রায়শই) তত্ক্ষণাত্ সার্ভারটি বন্ধ করে / শাটডাউন করে, প্রথমে
গার্ট ভ্যান ডান বার্গ

উত্তর:


120

এবং এখন, সিস্টেমযুক্ত উত্তর।

আপনি আপনার প্রশ্নের প্রতিটি ট্যাগ, রেড হ্যাট এন্টারপ্রাইজ লিনাক্স ব্যবহার করছেন। সংস্করণ। থেকে, এটি সিস্টেমেড ব্যবহার করেছে। অন্যান্য উত্তরগুলির কোনওটিই সিস্টেমড ওয়ার্ল্ডের জন্য সঠিক নয়; এমনকি আপনার প্রশ্নের কিছু অনুমানও নেই।

  • রানলেভেলগুলি সম্পর্কে ভুলে যান ; এগুলি বিদ্যমান, তবে কেবল সামঞ্জস্যতার শিম হিসাবে। সিস্টেমড ডকুমেন্টেশনে বলা হয়েছে যে ধারণাটি "অপ্রচলিত"। যদি আপনি এই ব্যবস্থাটি একটি সিস্টেমযুক্ত অপারেটিং সিস্টেমে শিখতে শুরু করেন তবে সেখানে শুরু করবেন না।
  • ম্যান্সেলম উদ্ধৃত ম্যানুয়াল পৃষ্ঠাটি ভুলে যান; এটি একেবারে সঠিক টুলসেট থেকে নয়, এবং অন্য একটি টুলসেটের কমান্ডের বিবরণ যা সিস্টেমডের জন্য ভুল। এটি haltভ্যান স্মোরেনবার্গ "সিস্টেম 5" initইউটিলিটি থেকে কমান্ডের জন্য একটি ।
  • যে বিবৃতিগুলির /sbin/haltপ্রতীকী লিঙ্ক তা উপেক্ষা করুন /sbin/reboot; এটি সিস্টেমডের সাথে সত্য নয়। একেবারেই আলাদা কোনও rebootপ্রোগ্রাম নেই ।
  • বিবৃতি উপেক্ষা করুন যে haltবা rebootএকটি ডাকা shutdownকম্যান্ড-লাইন আর্গুমেন্ট সহ প্রোগ্রাম; এগুলি সিস্টেমেডের সাথেও সত্য নয়। একেবারেই আলাদা কোনও shutdownপ্রোগ্রাম নেই ।

প্রতিটি সিস্টেম ম্যানেজমেন্ট টুলসেটের এই ইউটিলিটির সংস্করণ রয়েছে। systemd হল, ভুঁইফোড়, জখলাবার , ভ্যান Smoorenburg initএবং বাসদ initসব তাদের নিজস্ব আছে halt, poweroffতাই ঘোষণা, এবং। প্রতিটিতে তাদের যান্ত্রিকতা কিছুটা আলাদা। তাদের ম্যানুয়াল পৃষ্ঠাগুলি হয়।

Systemd হল টুলসেট ইন halt, poweroff,reboot , telinit, এবং shutdownহয় সব প্রতীকী লিঙ্ক /bin/systemctl। এইগুলি হল সব পিছন সামঞ্জস্য শিম্স, যে কেবল systemd হল প্রাথমিক কম্যান্ড-লাইন ইন্টারফেস invoking জন্য shorthands আছেন: systemctl। এগুলি সমস্ত একই একক প্রোগ্রামে মানচিত্র করে (এবং প্রকৃতপক্ষে) । (কনভেনশন অনুসারে, শেলটি এটি বলে যে এটি কোন নামে ডাকা হয়েছে))

লক্ষ্যগুলি, রানলেভেলস নয়

ঐ কমান্ড অধিকাংশই systemd হল বলছে, ব্যবহার করার জন্য shorthands হয় systemctl, এর বিছিন্ন একটি নির্দিষ্ট লক্ষ্য । বিচ্ছিন্নতাটি systemctlম্যানুয়াল পৃষ্ঠায় (কিউভি) ব্যাখ্যা করা হয়েছে , তবে এই উত্তরের উদ্দেশ্যে, লক্ষ্য শুরু করা এবং অন্য কোনওটিকে থামানো হিসাবে ভাবা যেতে পারে। সিস্টেমডে ব্যবহৃত আদর্শ লক্ষ্যগুলি systemd.special(8) ম্যানুয়াল পৃষ্ঠাতে তালিকাভুক্ত করা হয়েছে ।

bootupসিস্টেমেড টুলসেটে (7) ম্যানুয়াল পৃষ্ঠায় চিত্রগুলি , বিশেষত শেষটিতে, এখানে তিনটি "চূড়ান্ত" টার্গেট রয়েছে যা এখানে প্রাসঙ্গিক:

  • halt.target- সিস্টেম একবার এই লক্ষ্যটিকে পুরোপুরি বিচ্ছিন্ন করার অবস্থায় পৌঁছে গেলে এটি reboot(RB_HALT_SYSTEM)সিস্টেম কলকে ডেকে আনবে । কার্নেলটি কোনও রম মনিটরের প্রোগ্রামে প্রবেশের চেষ্টা করবে, বা কেবল সিপিইউ বন্ধ করে দিয়েছে (এটি করার জন্য উপযুক্ত যেকোন পদ্ধতি ব্যবহার করে)।
  • reboot.target- সিস্টেম একবার এই লক্ষ্যটিকে সম্পূর্ণরূপে বিচ্ছিন্ন করার অবস্থায় পৌঁছে গেলে এটি সিস্টেম reboot(RB_AUTOBOOT)কল (বা ম্যাজিক কমান্ড লাইনের সমতুল্য) ডেকে আনবে । কার্নেল একটি রিবুট ট্রিগার করার চেষ্টা করবে।
  • poweroff.target- সিস্টেম একবার এই লক্ষ্যটিকে পুরোপুরি বিচ্ছিন্ন করার অবস্থায় পৌঁছে গেলে এটি reboot(RB_POWER_OFF)সিস্টেম কলকে ডেকে আনবে । কার্নেল সম্ভব হলে সিস্টেম থেকে শক্তি সরিয়ে নেওয়ার চেষ্টা করবে।

এইগুলি সেই বিষয়গুলি যা আপনার চূড়ান্ত সিস্টেম হিসাবে উল্লেখ করা উচিত, রান স্তর নয়। ডায়াগ্রাম থেকে লক্ষ্য করুন যে সিস্টেমযুক্ত টার্গেট সিস্টেম নিজেই এমন জিনিসগুলিকে এনকোড করে যা অন্য সিস্টেমে স্পষ্টের পরিবর্তে অন্তর্নিহিত: যেমন এই ধারণা যে এই চূড়ান্ত লক্ষ্যগুলির প্রত্যেকটি লক্ষ্যকে অন্তর্ভুক্ত করে shutdown.target, যাতে কোনও পরিষেবাগুলি বর্ণনা করে যা দ্বারা বন্ধ হওয়ার আগে থামানো উচিত তাদের থাকার সংঘাতshutdown.target লক্ষ্য।

systemctlsystemd-logindকলিং ব্যবহারকারী যখন সুপারভাইজার না হন তখন অনুরোধগুলি প্রেরণের চেষ্টা করে । এটি বিলম্বিত শাটডাউনগুলিকেও পেরিয়ে যায় systemd-shutdownd। এবং কিছু শর্টহ্যান্ডস wallবিজ্ঞপ্তিগুলি ট্রিগার করে । এই জটিলতাগুলি একদিকে ফেলে, যা এই উত্তরটি কয়েকগুণ বেশি করে দেবে, ধরে নিবেন আপনি বর্তমানে সুপারইউজার এবং নির্ধারিত ব্যবস্থাটির জন্য অনুরোধ করছেন না:

  • systemctl isolate halt.target সংক্ষিপ্তসার আছে:
    • shutdown -H now
    • systemctl halt
    • সরল unadorned halt
  • systemctl isolate reboot.target সংক্ষিপ্তসার আছে:
    • shutdown -r now
    • telinit 6
    • systemctl reboot
    • সরল unadorned reboot
  • systemctl isolate poweroff.target সংক্ষিপ্তসার আছে:
    • shutdown -P now
    • telinit 0
    • shutdown now
    • systemctl poweroff
    • সরল unadorned poweroff
  • systemctl isolate rescue.target সংক্ষিপ্তসার আছে:
    • telinit 1
    • systemctl rescue
  • systemctl isolate multi-user.target সংক্ষিপ্তসার আছে:
    • telinit 2
    • telinit 3
    • telinit 4
  • systemctl isolate graphical.target শর্টহ্যান্ড আছে:
    • telinit 5

বিভিন্ন বিবিধ কমান্ড-লাইন সিনট্যাক্সগুলি বিশ্লেষণ করার পরে, শেষ পর্যন্ত এগুলি সমস্ত systemctlপ্রোগ্রামের অভ্যন্তরে একই কোড পাথে শেষ হয় ।

নোট:

  • অপশন-কমের traditionalতিহ্যগত আচরণটি একক-ব্যবহারকারী মোডেshutdown now স্যুইচ করা হয়েছে । সিস্টেমডের ক্ষেত্রে এটি হয় না। - সিঙ্গল-ইউজার মোডের সিস্টেমডে রেসকিউ মোডের নামকরণ করা হচ্ছে - কমান্ডটি ব্যবহার করা যায় না ।rescue.targetshutdown
  • telinit ম্যানুয়াল পৃষ্ঠাগুলি বর্ণনা করে এমন ফাইল সিস্টেমের সেই সমস্ত এবং প্রতীকী লিঙ্কগুলিকে সত্যিই পুরোপুরি উপেক্ষা করে । পূর্ববর্তী ম্যাপিংগুলি একটি টেবিলে হার্ডওয়ার্ড করা হয় ।runlevelN.targetdefault.targetsystemctl
  • systemd এর বর্তমান রান স্তরের কোনও ধারণা নেই । "আপনি রান-লেভেল এন -তে থাকলে" এই আদেশগুলি পরিচালনা করা শর্তসাপেক্ষ নয় ।
  • --forceবিকল্প halt, rebootএবং poweroffকমান্ড বলছে হিসাবে একই --force --forceথেকে systemctl halt, systemctl rebootএবং systemctl poweroffকমান্ড। এটি সরাসরি systemctlকল করার চেষ্টা করে reboot()। সাধারণত এটি লক্ষ্যগুলি আলাদা করার চেষ্টা করে।
  • telinitযেমন হয় না init। এগুলি সিস্টেমড ওয়ার্ল্ডের বিভিন্ন প্রোগ্রাম, পরেরটি systemdপ্রোগ্রামটির নয়, প্রোগ্রামটির অন্য নাম systemctlsystemdপ্রোগ্রাম অগত্যা সব সময়ে কোন ভ্যান Smoorenburg এর সঙ্গে সামঞ্জস্যপূর্ণ কম্পাইল করা হয় না, এবং কিছু systemd হল অপারেটিং সিস্টেমে প্রার্থনা হচ্ছে ভুল যদি এক প্রচেষ্টা সম্পর্কে অভিযোগ ।init N

আরও পড়া


1
এটি বেশিরভাগ আধুনিক লিনাক্স সিস্টেমের জন্য খুব জেনেরিক তাই উদাহরণস্বরূপ উত্তরগুলি wiert.me/2012/12/30/… উত্তর দেওয়ার জন্য এত বছর ধরে ভাবতে যাওয়ার পরে, আমি শেষ পর্যন্ত বুঝতে পারছি কী চলছে এবং কেন।
জেরোয়েন ওয়েয়ার্ট প্লুয়িমারস

systemctl rebootএর সমতুল্য হওয়া উচিত systemctl start reboot.target --job-mode=replace-irreversible। অন্য যে কোনও কাজের মোড ব্যবহার করা কম শক্ত। unix.stackexchange.com/questions/381739/…
সোর্সজেডি

1
আমি আপনার সম্পূর্ণ reponse পড়েছি, এবং আমি যা পারি তা শুষে নিয়েছি। একটি প্রশ্ন রয়ে গেছে, আমি এখানে আসার জন্য একই, systemctl rebootপুনরায় বুট করার "নিরাপদ" উপায়, উদাহরণস্বরূপ init 6কোন উপায়টি আমরা অন্যথায় নিরাপদ রিবুট করব?
ব্রায়ান থমাস

25
  • haltহার্ডওয়্যারকে সমস্ত সিপিইউ ফাংশন বন্ধ করার নির্দেশ দেয় , তবে এটিকে একটি পাওয়ার-অন অবস্থায় ফেলে দেয়। এর অর্থ সাধারণত কারওর পরে পাওয়ার বোতামটি টিপে মেশিনটি রিবুট বা ম্যানুয়ালি বন্ধ করতে হবে। এটি অর্জনের সুনির্দিষ্ট উপায় হ'ল আর্কিটেকচার নির্দিষ্ট, তবে উদাহরণস্বরূপ x86 নির্দেশিকাটি নির্দেশাবলী সরবরাহ করে HLTযা পরবর্তী বাহ্যিক বাধা নিষ্ক্রিয় না হওয়া পর্যন্ত কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিট (সিপিইউ) থামিয়ে দেয়।

  • poweroffযেমন halt, সিপিইউ থামায় কিন্তু একটি এসিপিআই হার্ডওয়্যার সিগন্যাল প্রেরণ করে যা সিস্টেমটিকে সম্পূর্ণ এবং তাত্ক্ষণিকভাবে শাটডাউন শুরু করার নির্দেশ দেয়। এটি একটি সাধারণ ডেস্কটপ কম্পিউটারে পাওয়ার বোতাম টিপানোর সমান।

উভয় haltএবং poweroffসাধারণত প্রতি সিম্বলিক লিঙ্ক rebootএক্সিকিউটেবল, যা সাধারণত ডাকা হবে shutdownউপযুক্ত আর্গুমেন্টগুলি (সঙ্গে টুল -h, -Pবা r) যদি তার উপর নির্ভর করে halt, poweroffবা rebootটুল ডাকা ব্যবহার করা হয়েছে। যাইহোক, যখন --forceবিকল্পটি পাস করা হয় reboot, বা যখন রানলেভেল 0 বা 6 হয়, তখন একটি উপযুক্ত কমান্ড কোড সহ সিস্টেম কল শুরু করা rebootহবে reboot()


থমাস, ব্যাখ্যা করার জন্য আপনাকে অনেক ধন্যবাদ। আমি # ইনিট 0 করার বিষয়ে কী জানতে আগ্রহী, সেখানে খুব বেশি পার্থক্য নেই?
Win.T

@ Win.T উদাহরণস্বরূপ রানলেভেল 0-এ স্যুইচ করা /sbin/init 0বা /sbin/telinit 0সিস্টেমটি থামানোর মতোই হওয়া উচিত, যদিও নেওয়া নির্দিষ্ট পদক্ষেপগুলি প্রশ্ন-ভিত্তিতে ডিগ্রী সিস্টেমের উপর নির্ভর করবে যেমন সিস্টেম-ভি ইন , আপস্টার্ট বা সিস্টেমড । আপনি যদি RHEL চালিয়ে যাচ্ছেন তবে আপনি সিস্টেমড ব্যবহার করবেন using
থমাস নাইম্যান

4
স্বরে নোট করুন: প্রতিবার কেউ যখন আরকেন উইন 32 এপিআই কল সম্পর্কে অভিযোগ করেন, তাদের পুনরায় বুট করুন (2) show
ব্যবহারকারী 253751

@ ইমিবিস তবে রিবুট উদ্দেশ্যমূলকভাবে আরকেন। এটি যাদু পতাকা প্রয়োজন যাতে দুর্ঘটনাক্রমে করা খুব কঠিন।
কেভিন কক্স

4
@ কেভিনকক্স এটি ম্যাজিক ফ্ল্যাগের প্রয়োজনীয়তার যুক্তি। এটি ম্যাজিক 2-এর 4 টি পৃথক মান গ্রহণ করার পক্ষে বা পিআইডি নেমস্পেসের অভ্যন্তরে ভিন্ন আচরণ করার জন্য নয়, বা সুনির্দিষ্টভাবে সম্পর্কিত বেশ কয়েকটি ক্রিয়াকলাপ (যেমন রিবুট-অন-সিটিআরএল-অল্ট-মোছা আচরণ সেট করা) এক ফাংশনে লম্পট করার পক্ষে যুক্তি নয়।
ব্যবহারকারী 253751

1

halt, poweroffএবং shutdown -hসম্পূর্ণ সমতুল্য। আসলে, থাম এবং পাওয়ার অফ কল ছাড়া কিছুই করে না shutdown -h। হলট / পাওয়ারঅফ ম্যানপেজ থেকে:

সিস্টেমটি রানলেভেল 0 বা 6 এ না থাকলে যদি থামানো বা পুনরায় বুট করা হয়, অন্য কথায় এটি যখন স্বাভাবিকভাবে চলতে থাকে, তখন শাটডাউনটি পরিবর্তে (-h বা -r পতাকা সহ) ডাকা হবে। আরও তথ্যের জন্য শাটডাউন (8) ম্যানপেজ দেখুন।

শাটডাউন তারপর রানলেভেল 0-এ স্যুইচ করে সিস্টেমটি বন্ধ করতে এগিয়ে যায়।

হাল্ট এবং পাওয়ার অফ (এবং রিবুট) দ্বৈত ভূমিকা পালন করে; যখন শাট ডাউন করার প্রক্রিয়াতে চালিত হয় (যেমন, রানলেভেল 0 বা 6), তারা অন্য উত্তরে বর্ণিত হিসাবে মেশিনটিকে শারীরিকভাবে থামাতে, বিদ্যুৎ বন্ধ করতে বা পুনরায় বুট করতে প্রয়োজনীয় নিম্ন-স্তরের ক্রিয়াকলাপ সম্পাদন করে।


2
আপনি আরএইচইএলের কোন সংস্করণ ব্যবহার করছেন? সাধারণত থাম এবং পাওয়ার অফের মধ্যে পার্থক্য রয়েছে (যদিও কিছু সময়ের জন্য এটি অনেক বিতরণে কেস হিসাবে ব্যবহৃত হত না, তবে এটি একটি বাগ ছিল)।
ব্রুনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.