راه اندازی مجدد اوبونتو از کنسول لینوکس: سیستم را راه اندازی مجدد و خاموش کنید

چکیده: شرح انواع راه اندازی مجدد، داستان در مورد sysrq، ipt_SYSRQ، ipmi، psu.

چگونه سرور را راه اندازی مجدد کنیم؟- این سوالی است که معمولاً از کاربران بسیار مبتدی که بین توقف، خاموش کردن -r، راه اندازی مجدد، init 6 و غیره سردرگم هستند پرسیده می شود.

یک مدیر با تجربه این سوال را روشن می کند: "مشکل سرور چیست؟" انواع مختلف خرابی سرور به انواع مختلفی از راه اندازی مجدد نیاز دارد - و گزینه اشتباه منجر به عواقب وحشتناکی خواهد شد، که بازدید از رابط وب IPMI/DRAC/iLO برای "راه اندازی مجدد" ساده ترین خواهد بود. سخت ترین چیز در تجربه شخصی من سفر کاری یک کارمند Enikey به یک شهر همسایه بود. به منظور "راه اندازی مجدد" در یک سرور تنها.

در این مقاله: چه چیزی سرور را از راه اندازی مجدد جلوگیری می کند و چگونه به آن کمک کنیم.

بیایید با تئوری راه اندازی مجدد شروع کنیم.

هنگامی که سرور خاموش یا راه‌اندازی مجدد می‌شود، مدیر مقداردهی اولیه (در اکثر توزیع‌های مدرن - systemd، در اوبونتو 14.04 غیرعادی هنوز شروع به کار می‌کند، در سطل زباله قدیمی - sysv-init) به ترتیب خاصی دستور "خاموش کردن" را به همه شیطان‌ها ارسال می‌کند. . و اکثر شیاطین (به عنوان مثال، DBMS هایی مانند mysql) می دانند که چگونه به درستی خاموش شوند. به عنوان مثال، تمام تراکنش ها را پایان دهید، تمام داده های ذخیره نشده را روی دیسک ذخیره کنید و غیره. برای یک DBMS درون حافظه، مانند redis، این می تواند بسیار مهم باشد: اگر آن را ذخیره نکنید، آن را از دست خواهید داد.

سیستم های اولیه سازی قدیمی مدت زمان نامحدودی برای هر یک از اسکریپت های init منتظر ماندند. به عنوان مثال، اگر یک "جوکر" شاخه "sleep 3600" را به "stop" شما اضافه کند، سرور شما برای یک ساعت یا بیشتر راه اندازی مجدد خواهد شد. و اگر تعداد بیشتری وجود داشته باشد، یا فقط برنامه ای وجود داشته باشد که نمی خواهد تمام شود، راه اندازی مجدد هرگز تمام نمی شود.

سیستم های اولیه سازی جدید (در واقع، ما خجالت نمی کشیم - فقط systemd باقی می ماند) یک بازه زمانی مشخص (معمولاً 120 یا 180 ثانیه) برای ذخیره داده ها می دهد، پس از آن آنها به زور فرآیند را خاتمه می دهند. علاوه بر متوقف کردن شیاطین، آنها سوار خواهند شد سیستم های فایل(یعنی تمام کش های بلاک دور انداخته می شوند)، اهداف iscsi متوقف می شوند (همچنین با حذف حافظه پنهان) و غیره حداقل امیدی به تکمیل صحیح همه دیمون ها، دور انداختن کش فایل ها و غیره است.

بنابراین، در یک سیستم سالم، پاسخ صحیح به سوال "چگونه راه اندازی مجدد شود" اجرای دستور راه اندازی مجدد است. در برخی موارد، حتی تنها مورد صحیح است (اصلاح: اگر "راه اندازی مجدد" را در رابط گرافیکی انجام دهید، محیط دسکتاپ فکر می کند که این یک راه اندازی مجدد اضطراری است - برای راه اندازی مجدد از حالت گرافیکی، باید از "راه اندازی مجدد" استفاده کنید. رابط DE).

چه چیزی ممکن است در طول "راه اندازی مجدد عادی" اشتباه کند؟ خوب، اولا، یکی از فرآیندهای دیمون ممکن است شروع به "احمق" شدن کند - به بالا مراجعه کنید.

ثانیاً، ممکن است مشکلی در نصب فایل سیستم وجود داشته باشد. اعتقاد بر این است که "کشتن" تمام فرآیندها کافی است و جدا کردن دیسک آسان خواهد بود - هیچ کس از آن استفاده نمی کند. اما، به بیان ملایم، این درست نیست. در اینجا روش‌های بالقوه‌ای برای «نیک کردن fs به‌گونه‌ای که از حالت نصب خارج نشود» وجود دارد:

  • fallocate /fs/swap -l 1G;mkswap /fs/swap; swapon /fs/swap
  • dd if=/dev/sda of=/fs/image; kpartx /fs/image
  • losttup --find --show /fs/image
و غیره به طور خلاصه: یک فایل می تواند نه تنها توسط سیستم فایل، بلکه توسط هسته نیز اشغال شود. و یک ماژول در هسته ممکن است مشغول جستجوی پاسخ برای معنای زندگی باشد و هیچ قصدی برای انتشار منبع نداشته باشد.

این به چه معناست؟ یک سیستم فایل نصب نشده Systemd در این شرایط تلاش می کند و تلاش می کند و حتی آن را پرتاب می کند (سیستم فایل نصب نشده). یعنی راه اندازی مجدد در این شرایط خیلی طول می کشد، اما باز هم می گذرد. اما این در صورتی است که umount یک خطا برگرداند.

و این اتفاق می افتد که umount نمی تواند عملیات را کامل کند زیرا چیزی در دسترس نیست. به عنوان مثال، یک فایل در یک سرور nfs. اگر هر فرآیندی به چنین فایلی دسترسی پیدا کند، نمی توان آن را خاتمه داد (حتی با kill -9). و در این شرایط، "راه اندازی مجدد" به سادگی سرور را مسدود می کند. مجدداً، معمول‌ترین مکان‌ها در systemd "پوشش داده شده‌اند"، اما همچنان می‌توانید به TASK_UNINTERRUPTIBLE ("D" در ps aux) برخورد کنید.
چه باید کرد؟ راه اندازی مجدد بدون همگام سازی فایل سیستم ها یا تکمیل هر چیزی با راه اندازی مجدد -f امکان پذیر است. اما او همچنین می تواند آویزان شود. در مورد دلایل زیر، اما در حال حاضر در مورد عواقب: تمام فرآیندها متوقف نمی شوند و فورا می میرند، جلسات tcp بسته نمی شوند، حافظه پنهان دیسک بازنشانی نمی شود. با این حال، هسته همچنان برخی از حرکات را در اطراف راه‌اندازی مجدد انجام می‌دهد (و شاید برخی از حافظه‌های پنهان بازنشانی شوند). نکته اصلی این است که در طول فرآیند راه اندازی مجدد، بیشتر هسته درگیر خواهد شد. و این بدان معنی است که اگر هسته مریض شود، ممکن است دیگر برنگردیم.

وضعیت دوم، بسیار ناخوشایند: مشکلات سیستم فایل روشن / (در ریشه). هر تلاشی برای انجام ls، grep و حتی "راه اندازی مجدد" باعث هنگ کردن کنسول یا خطا می شود. مشکلات مربوط به libc (از جمله حذف آن) در همان دسته قرار می گیرند، زمانی که وقتی می خواهید "راه اندازی مجدد" کنید، در مورد مشکل پیوند صحبت می کنند و از انجام کاری امتناع می ورزند. یا، ما به محدودیت تعداد پیدها رسیده‌ایم و همه آنها در حالت "D" هستند یا چیزهای مزخرفی از همان کالیبر هستند که در دسته "سرور بد است".

این اتفاق می افتد که تنها یک کنسول روی سرور باز می ماند (و کنسول دوم دیگر باز نمی شود). چرا؟ زیرا شخصی با درایور دیسک کاری انجام داده است. یا یک کنترلر حمله. یا چیز دیگری، پس از آن فقط حافظه ها در حافظه پنهان دیسک از "/" باقی می مانند. این بدان معنی است که ما فقط دستورات bash (builtin) داریم که بدون شروع فرآیندهای جدید اجرا می شوند.

یک روش راه‌اندازی مجدد وجود دارد که نیازی به اجرای هیچ فایل اجرایی (یعنی خواندن از دیسک گمشده) ندارد. این (از ریشه): echo b >/proc/sysrq-trigger . فایل sysrq-trigger به شما این امکان را می دهد که هر دکمه ای را از ترکیبات SysRq (دکمه های اضطراری هسته) "فشار" کنید. از جمله SysRq-b، یعنی "راه اندازی مجدد" اضطراری. اغلب اتفاق می افتد که پس از فشار دادن enter، فید خط حتی زمانی برای ظاهر شدن ندارد - سرور قبلاً قبل از بازگشت syscall در حال راه اندازی مجدد است. این قدرتمندترین نرم افزار موجود برای راه اندازی مجدد است.
توجه: آنچه در این وضعیت صحیح به نظر می رسد "همگام سازی، راه اندازی مجدد" است. SysRq-s، SysRq-B یک خطا است، زیرا بعد از SysRq-S، هسته ممکن است سعی کند با یک مجموعه خالی ارتباط برقرار کند و به طور بالقوه وحشت کند یا آخرین کنسول موجود شما را قطع کند. اگر راه اندازی مجدد اضطراری انجام شود، باید راه اندازی مجدد اضطراری باشد

ipt_sysrq

اگر کنسولی روی سرور داشته باشید همه اینها کار می کند. اگر لاگین قطع شود و کنسول باز نباشد چه؟ یک ماژول ipt_SYSRQ وجود دارد که به شما امکان می دهد درخواست های sysrq را برای دریافت یک بسته شبکه خاص (به طور دقیق تر، طبق قانون iptables) اجرا کنید. این به طور کامل در هسته کار می کند، یعنی. به FS بستگی ندارد. همچنین با دستور send_sysrq همراه است.

نگهبان برای نگهبان

ممکن است کسی فکر کند که این همه چیز است، اما یخ های ناخوشایندتر نیز وجود دارد. مثلا یخ زده کارت شبکه. و راه اندازی مجدد معمولی (از جمله از طریق sysrq) کمکی نمی کند. نمونه دوم از چنین وضعیت بدی، یک محفظه گیر است که روی یک دیسک بد گیر کرده و تمام تنظیمات مجدد اتوبوس را نادیده می گیرد. به نظر می رسد راه اندازی مجدد همه چیز را بازنشانی می کند، اما دیسک ها غیرقابل دسترسی هستند.

در این مورد ما به چرخه برق (روشن/خاموش) نیاز داریم. اجرای فیزیکی روی سرور جالب نیست، بنابراین می توانید به قابلیت های سرورهای مدرن نگاه کنید: IPMI. این یک میکرو کامپیوتر داخلی است که به شما امکان می دهد یک کامپیوتر "بزرگ" را کنترل کنید. معمولاً IPMI، DRAC، iLO و غیره نامیده می شود.

تیم مورد علاقه ما این است: چرخه قدرت شاسی ipmitool. برای عملکرد سیستم سخت‌تر است (ماژول‌های هسته باید بارگیری شوند، خود ipmitool باید با موفقیت شروع شود، ipmi باید کار کند و غیره). اما به شما این امکان را می دهد که تغذیه همه افراد را تغییر دهید. به طور دقیق تر، تقریباً همه - اگر سرور دارای jbods باشد، این دستور به آنها نمی رسد، اما، با این وجود، این یک راه اندازی مجدد بسیار قوی و خوب است.

اگر هسته کاملاً خراب است، می توان فرمان را از راه دور اجرا کرد (ipmitool -H ipmi.server.local chassis power cycle)

وضعیت دشوار دیگر زمانی است که ipmi فریز می شود. اگر سیستم کم و بیش زنده است، می توانید ipmi را مجدداً راه اندازی کنید: ipmitool mc سخت راه اندازی مجدد شود. پس از این امکان انجام چرخه قدرت برای شاسی وجود خواهد داشت. عجیب به نظر می رسد، اما چندین بار در زندگی من سرور را با استفاده از این ترتیب به یک راه اندازی مجدد عادی "کشیدم". ( پس از راه اندازی مجدد mc، باید چند دقیقه فرصت دهید تا BMC بارگذاری شود).

نکته بعدی درد انجماد منابع تغذیه است. بله، این اتفاق می افتد. اشکالات موجود در سیستم عامل منابع تغذیه اصلاح شده است، آنها باید فلش شوند. البته، راه اندازی مجدد نرم افزاری (مانند چرخه برق ipmi) در این شرایط کار نمی کند. یا باید کابل را به صورت فیزیکی فشار دهید، یا برق را از راه دور تغییر دهید. سوکت IP در این شرایط کمک می کند.

چیزی شبیه این به نظر می رسد (بخشی از کنترل پنل برای servers.com/servers.ru):

بدیهی است در این شرایط راه اندازی مجدد طبق سناریوی بسیار سخت گیرانه انجام می شود اما قطعاً می گذرد.

دستور "shutdown" سیستم را با خیال راحت خاموش می کند. همه کاربرانی که وارد سیستم شده اند، یک اعلان دریافت می کنند که سیستم در حال خاموش شدن است و عملیات ورود به سیستم مسدود شده است. می توانید بلافاصله یا پس از یک تاخیر مشخص سیستم را خاموش کنید.

خاموش کردن لینوکس از خط فرمانبسیار راحت است و بسیاری از کاربران سیستم کامپیوتر خود را از طریق خط فرمان در چنین مواردی کنترل می کنند. ابتدا به همه فرآیندها اطلاع داده می شود که سیستم در حال آماده شدن برای خواب یا راه اندازی مجدد از طریق SIGTERM است. این به برنامه هایی مانند vi زمان برای ذخیره فایل در حال ویرایش، ایمیل و برنامه های خبری، امکان خروج از سیستم و غیره می دهد.

"Shutdown" کار خود را با سیگنال دادن به فرآیند init انجام می دهد و از آن می خواهد که سطح اجرا خود را تغییر دهد. از Runlevel 0 برای متوقف کردن سیستم، از Runlevel 6 برای راه اندازی مجدد سیستم و از Runlevel 1 برای قرار دادن سیستم در حالتی استفاده می شود که در آن وظایف اداری می تواند انجام شود (حالت تک کاربر). Runlevel به طور پیش فرض 1 است مگر اینکه گزینه های -h یا -r مشخص شده باشند.

سیستم شما ممکن است مجموعه پارامترهای متفاوتی برای دستور shutdown داشته باشد. اسناد دستگاه را بررسی کنید.

لینوکس را از خط فرمان خاموش کنید

خاموش کردن [-akrhPHfFnc] [-t ثانیه] زمان [پیام]

  1. -a با استفاده از فایل /etc/shutdown.allow کنترل دسترسی به فرمان shutdown را کنترل کنید. برای دریافت اطلاعات اضافیبخش کنترل دسترسی را در زیر ببینید.
  2. -k خاموش نکنید، اما پیام‌های هشدار ارسال کنید که گویی خاموش شدن واقعی است.
  3. -h به سیستم می گوید خاموش و سپس آن را متوقف کند.
  4. -P به سیستم دستور می دهد تا خاموش و سپس خاموش شود.
  5. -H اگر گزینه -h مشخص شده باشد، این گزینه مشخص می کند که سیستم در سیستم هایی که از آن پشتیبانی می کنند باید در مانیتور بوت بوت شود.
  6. -f پس از راه اندازی مجدد، از fsck رد شوید.
  7. -F پس از راه اندازی مجدد، fsck را مجبور کنید.
  8. -n برای پایان دادن به فرآیندها، init را فراخوانی نکنید. دستور shutdown را بدهید تا خودش این کار را انجام دهد.
  • استفاده از این گزینه توصیه نمی شود و نتایج آن همیشه قابل پیش بینی نیست.
  1. -c لغو خاموش شدن معلق. (این مورد در مورد "shutdown now" صدق نمی کند که تا خاموش شدن منتظر نمی ماند.) شما نمی توانید با این گزینه یک آرگومان زمانی تعیین کنید، اما می توانید یک پیام توضیحی را مشخص کنید که برای همه کاربران ارسال شود.
  2. تی ثانیه. به مقداردهی اولیه بگویید که چند ثانیه بین فرآیندهای ارسال هشدار و سیگنال کشتن صبر کند و سپس به مرحله اجرا دیگری منتقل شود.
  3. زمانآرگومان زمان مشخص می کند که چه زمانی عملیات خاموش شدن باید انجام شود.

زمان را می توان به روش های مختلفی قالب بندی کرد:

اول، می تواند یک زمان مطلق در قالب hh:mm باشد، که در آن hh ساعت است (1 یا 2 رقم، از 0 تا 23) و میلی متر دقیقه ساعت (در دو رقم) است.

ثانیاً، می تواند در قالب +m باشد، که m تعداد دقیقه های انتظار است.

علاوه بر این، کلمه در حال حاضر همان است که نشان دهنده +0 است. بلافاصله سیستم را خاموش می کند.

  1. پیام. پیامی به همراه اعلان خاموش شدن استاندارد برای همه کاربران ارسال می شود.

جزئیات

اگر خاموش شدن برای آینده برنامه ریزی شده باشد، یک فایل مشاوره ای /etc/nologin ایجاد می کند که برنامه هایی مانند ورود به سیستم را مجبور می کند به کاربران جدید اجازه ندهند. این فایل پنج دقیقه قبل از شروع توالی خاموش کردن ایجاد می شود. Shutdown این فایل را حذف می کند اگر قبل از اینکه بتواند سیگنال دهی اولیه را بدهد متوقف شود (یعنی لغو شود یا مشکلی پیش آمده باشد). همچنین قبل از فراخوانی init برای تغییر سطح اجرا، آن را حذف می کند.

پرچم -f به معنای "راه اندازی مجدد سریع" است. این فقط یک فایل مشاوره /fastboot ایجاد می کند که وقتی دوباره ظاهر شد توسط سیستم قابل بررسی است. فایل rc بوت سیستم ("rc" مخفف "runcom" است که مخفف "run commands" است) ممکن است وجود این فایل را بررسی کند و تصمیم بگیرد که fsck را اجرا نکند زیرا سیستم به درستی خاموش شده است. پس از این، فرآیند بوت باید /fastboot را حذف کند.

پرچم -F به معنای "اجبار fsck" است. این فقط یک فایل مشاوره ای /forcefsck ایجاد می کند که وقتی دوباره ظاهر شد توسط سیستم قابل بررسی است. فایل rc بوت می تواند بررسی کند که آیا این فایل وجود دارد یا خیر و تصمیم می گیرد که fsck را با یک پرچم خاص "force" اجرا کند تا بررسی کند که آیا سیستم های فایل به درستی unmount شده اند یا خیر. پس از این، فرآیند بوت باید /forcefsck را حذف کند.

پرچم -n باعث می شود که خاموش شود نه برای فراخوانی init، بلکه برای از بین بردن تمام فرآیندهای در حال اجرا. Shutdown سهمیه، حسابداری و تبادلات را غیرفعال می‌کند و همه سیستم‌های فایل را جدا می‌کند.

کنترل دسترسی

هنگامی که کلید ترکیبی CTRL-ALT-DEL فشار داده شود، اگر ورودی مربوطه در /etc/inittab وجود داشته باشد، می توان خاموش شدن را از init فراخوانی کرد. این بدان معنی است که هر کسی که به صفحه کلید کنسول دسترسی فیزیکی دارد می تواند سیستم را خاموش کند.

برای جلوگیری از این امر، shutdown می تواند بررسی کند که آیا یک کاربر مجاز وارد سیستم شده است یا خیر. اگر shutdown با آرگومان -a فراخوانی شود (این را به فراخوانی خاموش در /etc/inittab اضافه کنید)، بررسی می کند که آیا فایل /etc/shutdown.allow موجود است یا خیر. سپس لاگین های موجود در این فایل را با لیست افرادی که وارد شده اند مقایسه می کند کنسول مجازی(از /var/run/utmp). تنها در صورتی که یکی از کاربران مجاز یا روت وارد شده باشد، اعمال می شود. در غیر این صورت پیام می نویسد

خاموش شدن: هیچ کاربر مجاز وارد نشده است

به کنسول فیزیکی سیستم. فرمت /etc/shutdown.allow یک نام کاربری در هر خط است. خطوط خالیو خطوط نظر (با پیشوند #) مجاز هستند. این فایل در حال حاضر دارای محدودیت 32 کاربر می باشد.

توجه داشته باشید که اگر /etc/shutdown.allow وجود نداشته باشد، آرگومان -a نادیده گرفته می شود.

خاموش کردن لینوکس و برق کامپیوتر

گزینه -H به سادگی متغیر محیط اولیه سازی INIT_HALT را روی HALT و گزینه -P به سادگی این متغیر را روی POWEROFF تنظیم می کند. یک اسکریپت shutdown که halt را به عنوان آخرین مورد در دنباله خاموش کردن فراخوانی می‌کند، باید این متغیرهای محیطی را بررسی کرده و با گزینه‌های صحیح call halt را بررسی کند تا آن گزینه‌ها واقعاً تأثیری داشته باشند.

فایل ها

  • /fastboot
    /etc/inittab
    /etc/init.d/halt
    /etc/init.d/reboot
    /etc/shutdown.allow

خاموش کردن لینوکس از خط فرمان: مثال ها

برای خاموش شدن سیستم در ساعت 8 صبح برنامه ریزی کنید.

برای خاموش شدن سیستم در ساعت 8 شب برنامه ریزی کنید.

shutdown +15 "ارتقای سخت افزار، خرابی باید حداقل باشد"

سیستم را برنامه ریزی کنید تا بعد از پانزده دقیقه خاموش شود. همراه با اطلاع رسانی معمول به کاربران مبنی بر خاموش شدن سیستم، یک پیام توصیفی در مورد به روز رسانی سخت افزار به آنها داده می شود.

فورا لینوکس را خاموش کنید

بلافاصله سیستم را خاموش کرده و به طور خودکار آن را راه اندازی مجدد کنید.

بلافاصله سیستم را خاموش و به طور خودکار خاموش کنید.

دستورات مرتبط

  • توقف - کامپیوتر را متوقف کنید.
  • Poweroff - کامپیوتر را متوقف کنید.
  • راه اندازی مجدد - کامپیوتر را متوقف کنید.
  • دیوار - برای همه کاربران وارد شده پیام ارسال کنید.

ترجمه از یک منبع عالی انگلیسی کامپیوتر امید.

اگر هنوز سؤالی در مورد موضوع "خاموش کردن لینوکس از خط فرمان" دارید، می توانید آنها را در فرم نظر سایت برای ما بنویسید.

اگر خطایی پیدا کردید، لطفاً قسمتی از متن را برجسته کرده و کلیک کنید Ctrl+Enter.

خاموش کردن کامپیوتر عملی است که با آن کاربران معمولیتقریبا هر روز با آن روبرو می شوند. اگر به ندرت مجبور هستید سرور را خاموش کنید، رایانه های رومیزی معمولی اغلب در معرض این عملیات قرار می گیرند. اکثر کاربران لینوکس را در رابط کاربری گرافیکی سیستم خاموش می کنند. در محیط دسکتاپ KDE این کار از طریق منوی اصلی انجام می شود و در Gnome و Unity حتی یک دکمه نوار ابزار مخصوص برای این کار وجود دارد.

اما همیشه نمی توان یک کامپیوتر لینوکس را از این طریق خاموش کرد. به عنوان مثال، اگر محیط دسکتاپ کار نمی کند، دیگر کاری برای انجام دادن باقی نمی ماند جز خاموش کردن رایانه از خط فرمان. علاوه بر این، خاموش کردن کامپیوتر لینوکسفقط از طریق ترمینال راه ممکنبرای سرورهایی که رابط گرافیکی ندارند. همانطور که خواهید دید، این روش همچنین بسیار انعطاف پذیرتر از خاموش کردن معمولی است، زیرا می توانید زمان خاموش شدن مورد نظر خود را تنظیم کنید یا در حالی که منتظر تکمیل یک برنامه خاص هستید، کامپیوتر را خاموش کنید.

برای خاموش کردن رایانه لینوکس، از دستور shutdown استفاده کنید. دستورات poweroff و halt نیز وجود دارد، اما برای موارد غیر استاندارد هستند. معمولاً فقط خاموش کردن کافی است. همچنین می توانید لینوکس را از کنسول با استفاده از میانبرهای صفحه کلید SysRq خاموش کنید. اما ابتدا، بیایید به نحو دستور shutdown نگاه کنیم.

دستور دستور بسیار ساده است:

$ shutdown [گزینه ها] [زمان] [پیام]

گزینه ها پارامترهای خاموش شدن را تنظیم می کنند، در زیر به آنها نگاه خواهیم کرد. زمان را می توان در قالب hh:mm در قالب 24 ساعت تنظیم کرد. همچنین می توانید از ورودی +minutes استفاده کنید که نشان می دهد چند دقیقه از لحظه فعلی برای خاموش کردن رایانه لینوکس خود نیاز دارید. ثابت now نیز موجود است، که نشان می دهد باید همین الان آن را خاموش کنید.

پارامتر پیام به شما امکان می دهد پیامی را مشخص کنید که قبل از خاموش شدن در ترمینال نمایش داده شود.

گزینه ها

  • --کمک- نمایش راهنمایی در مورد برنامه
  • -H، -- توقف- بدون از بین بردن فرآیندها یا نصب مجدد سیستم های فایل، برق را خاموش کنید
  • -P، --poweroff- خاموش شدن عادی
  • -k- اقدامات واقعی را انجام ندهید، بلکه فقط یک پیام را نمایش دهید
  • --بدون دیوار- کامپیوتر را خاموش کنید، اما پیامی نمایش داده نشود
  • - خاموش کردن برنامه ریزی شده لینوکس را از خط فرمان لغو کنید

این اساساً همه گزینه های ابزار است، بیش از اندازه کافی از آنها برای این وجود دارد اقدام ساده. اکنون می‌توانیم به سراغ مثال‌ها برویم، اما ابتدا بیایید ببینیم وقتی لینوکس روشن می‌شود چه اتفاقی می‌افتد.

فرآیند خاموش شدن لینوکس

طبیعتا دستور shutdown linux یا هر دستور دیگری به طور خودکار سیستم را خاموش نمی کند و کامپیوتر را خاموش نمی کند. به سادگی درخواست shutdown را به سیستم init و سپس به هسته ارسال می کند. و آنها قبلاً تعدادی عملیات پیچیده را برای آماده سازی و خاموش کردن رایانه انجام می دهند. به طور خلاصه، آنها اینجا هستند:

  • پایان فرآیندهای کاربر
  • SIGTERM را به همه فرآیندها سیگنال دهید
  • سیگنال SIGKILL به تمام فرآیندها
  • نصب فایل سیستم در حالت فقط خواندنی
  • آماده سازی دستگاه های خارجیبرای خاموش شدن
  • قفل فضای کاربر برای اطمینان از اینکه هیچ کد کاربری دوباره اجرا نمی شود
  • خاموش کردن و خاموش کردن اکثر دستگاه های جانبی
  • خاموش کردن برق کامپیوتر

اکنون ماهیت فرآیند خاموش کردن و اینکه چرا نمی‌توانید سیم برق را از پریز جدا کنید، می‌دانید. اگر این کار را انجام دهید، کامپیوتر فورا خاموش می شود و تمام عملیات لازم را انجام نمی دهد و این ممکن است منجر به از دست رفتن داده های ذخیره نشده یا حتی اخیراً ذخیره شده، آسیب به سیستم فایل و غیره شود. بنابراین توصیه می شود خاموش شود. کامپیوتر را به درستی با استفاده از خاموش کردن یا سایر ابزارهای خاص استفاده کنید.

حال به سراغ مثال‌ها می‌رویم.

خاموش کردن کامپیوتر در لینوکس

1. خاموش شدن

ساده ترین و پرکاربردترین دستور خاموش کردن کامپیوتر لینوکس بلافاصله کامپیوتر را خاموش می کند:

sudo shutdown -h اکنون

همانطور که می بینید، خاموش کردن معمول استفاده می شود، و ثابت زمانی در حال حاضر، یعنی اکنون.

حالا بیایید برنامه ریزی کنیم که کامپیوتر لینوکس بعد از پنج دقیقه خاموش شود:

sudo shutdown -h +5 "کامپیوتر در 5 دقیقه خاموش می شود"

ما برنامه ریزی کردیم که یک پیام قبل از خاموش شدن ظاهر شود.

حالا بیایید خاموش شدن رایانه لینوکس را لغو کنیم:

sudo shutdown -c

به همین ترتیب می توانیم نشان دهیم زمان دقیقخاموش شدن، به عنوان مثال در ساعت نه شب:

خاموشی sudo - ساعت 21:00

همانطور که قبلاً گفتم، نه تنها دستور shutdown linux می تواند کامپیوتر را خاموش کند، چندین ابزار کمکی دیگر نیز وجود دارند که می توانند این کار را انجام دهند. آنها را هم در نظر بگیریم.

2. راه اندازی مجدد

دستور reboot معمولا برای راه اندازی مجدد سیستم استفاده می شود، اما می تواند کامپیوتر را نیز خاموش کند. ما آن را با جزئیات در نظر نخواهیم گرفت، زیرا هنوز هم هست دستورات ساده ترخاموش شدن برای خاموش کردن آن، باید گزینه -p را مشخص کنید:

3. توقف

این دستور کامپیوتر را نیز خاموش می کند. او این کار را به روش منحصر به فرد خودش انجام می دهد. قبل از خاموش شدن هیچ مرحله مقدماتی را انجام نمی دهد، بلکه به سادگی برق را خاموش می کند:

استفاده از توقف ممکن است به سیستم آسیب برساند

4. poweroff

این شبیه به توقف است، دقیقاً همان کار را انجام می دهد:

5. SysRq

به یاد دارید در ابتدای مقاله، من در مورد میانبر صفحه کلید برای روشن کردن رایانه صحبت کردم؟ بیایید این موضوع را با جزئیات بیشتری در نظر بگیریم.

SysRq یک زیر سیستم است که در سطح هسته پیاده سازی شده است. هسته تمامی ضربه های کلید را پردازش می کند و با کمک این زیرسیستم می تواند دستورات کاربر را حتی در زمانی که سیستم کاملا فریز شده است بپذیرد. هدف اصلی این زیرسیستم کار با رایانه در شرایط مشکل ساز است، مثلاً اگر فکر می کنید رایانه شما به ویروس آلوده شده است یا رایانه یخ زده است و باید خاموش شود. برای دسترسی به SysRq از میانبرهای صفحه کلید استفاده می شود Alt+PrtScr+شماره

جالب ترین چیز این است که ما می توانیم با خیال راحت یک کامپیوتر لینوکس را خاموش کنیم. برای انجام این کار، کلیدهای Alt + PrtScr را نگه داشته و به طور متناوب فشار دهید:

  • آر- باز کردن قفل صفحه کلید
  • E- ارسال سیگنال SIGTERM به تمام فرآیندها
  • من- ارسال یک سیگنال SIGKILL به تمام فرآیندها
  • اس- انتقال تمام داده ها از کش فایل سیستم به دیسک
  • U- نصب مجدد سیستم های فایل فقط خواندنی
  • ب- راه اندازی مجدد

همچنین می توانید به جای همه اینها از میانبر صفحه کلید استفاده کنید Alt+PrtScr+Oدر این حالت، کل رویه به صورت خودکار انجام می شود.

نتیجه گیری

اکنون همه چیزهایی را که باید در مورد نحوه خاموش کردن لینوکس از طریق ترمینال بدانید، می دانید. اگر با یک خطا غافلگیر شدید یا رایانه شما یخ زد، می دانید چه کاری باید انجام دهید. اگر سوالی دارید، در نظرات بنویسید!

و گاهی اوقات هنگام اشکال زدایی یک مشکل یا به روز رسانی هسته، ممکن است نیاز به راه اندازی مجدد داشته باشید سیستم لینوکس. اگر یک سرور مستقل دارید، باید بدانید که چگونه سیستم را از خط فرمان راه اندازی مجدد کنید.

در توزیع‌های مدرن، ابزار systemctl جایگزین بسیاری از دستورات مدیریت توان مورد استفاده در نسخه‌های قدیمی‌تر می‌شود. توزیع های لینوکس، در sysvinit. دستورات قدیمی راه اندازی مجدد و خاموش کردن نام مستعار systemctl هستند و به دلایل سازگاری در سیستم موجود هستند.

در این مقاله، نحوه استفاده از دستورات systemctl و shutdown را برای راه اندازی مجدد یک ماشین لینوکس به شما نشان خواهیم داد. دستورات باید به صورت روت یا کاربری با .

نحوه راه اندازی مجدد لینوکس با استفاده از دستور systemctl

برای راه اندازی مجدد سیستم لینوکس، ابزار systemctl را با دستور reboot اجرا کنید:

راه اندازی مجدد sudo systemctl

سیستم بلافاصله راه اندازی مجدد خواهد شد.

هنگامی که راه‌اندازی مجدد شروع می‌شود، به همه کاربران و فرآیندهای ثبت‌شده اطلاع داده می‌شود که سیستم در حال از کار افتادن است و ورود مجدد مجاز نیست.

برای جلوگیری از ارسال پیام توسط دستور reboot، دستور را با پارامتر –no-wall اجرا کنید:

sudo systemctl --بدون دیوار راه اندازی مجدد

اگر می خواهید یک پیام سفارشی برای توضیح دلیل راه اندازی مجدد تنظیم کنید، از گزینه –message= استفاده کنید:

sudo systemctl --message="به روز رسانی سخت افزار" راه اندازی مجدد

پیام در گزارش ها نشان داده می شود:

سیستم در حال راه اندازی مجدد است

نحوه راه اندازی مجدد لینوکس با استفاده از دستور shutdown

برای راه اندازی مجدد یک سیستم لینوکس، از دستور shutdown با گزینه -r استفاده کنید:

sudo shutdown -r

به طور پیش فرض، سیستم پس از 1 دقیقه راه اندازی مجدد می شود، اما می توانید زمان دقیقی را که می خواهید سیستم راه اندازی مجدد شود، مشخص کنید.

استدلال زمان می تواند دو داشته باشد فرمت های مختلف. این می تواند یک زمان مطلق در قالب hh:mm و یک زمان نسبی در قالب +m باشد که m تعداد دقیقه های این لحظه است.

مثال زیر سیستم را برای راه اندازی مجدد در ساعت 10 صبح برنامه ریزی می کند:

خاموش شدن sudo -r 10:00

برای خاموش کردن سریع سیستم خود، از نام مستعار 0+ استفاده کنید:

sudo shutdown -r now

برای ارسال پیام خود به همراه اعلان خاموش شدن استاندارد، پیام خود را بعد از استدلال زمانی وارد کنید.

دستور زیر پس از 10 دقیقه سیستم را خاموش می کند و به کاربران اطلاع می دهد که به روز رسانی سخت افزاری انجام می شود.

بیایید نحوه راه اندازی مجدد یا خاموش کردن رایانه خود را از خط فرمان بررسی کنیم. من از این زمانی استفاده می کنم که هنگام نصب برخی از درایورها یا تحت بار سنگین روی پردازنده، رابط به اقدامات من پاسخ نمی دهد (اگرچه این بسیار به ندرت اتفاق می افتد). شما می توانید از طریق خط فرمان یک فرآیند "پرخور" را از بین ببرید، اما همیشه مشخص نیست که کدام فرآیند است، بنابراین راه حل سریعاین یک راه اندازی مجدد کامپیوتر است.

کامپیوتر را راه اندازی مجدد کنید

من این کار را می کنم. با فشار دادن میانبر صفحه کلید به کنسول می روم Ctrl+Alt+F1. در کنسول ابتدا باید نام کاربری و رمز عبور خود را وارد کنید (هنگام وارد کردن رمز عبور هیچ کاراکتری نمایش داده نمی شود). و دستور رو اجرا میکنم:

راه اندازی مجدد سودو

مجدداً باید رمز عبور مدیر را وارد کرده و Enter را فشار دهید. کامپیوتر شروع به راه اندازی مجدد خواهد کرد.

همچنین می توانید از دستور برای راه اندازی مجدد رایانه خود استفاده کنید خاموش شدن، برای این کار باید از کلید استفاده کنید -r:

Sudo shutdown -r اکنون

کامپیوتر را خاموش کنید

برای خاموش کردن رایانه از خط فرمان، باید دستور زیر را اجرا کنید:

Sudo خاموشی -h اکنون

همچنین می توانید با اجرای دستور زیر رایانه خود را خاموش کنید:

سودو متوقف شد

و همچنین قابل استفاده است.