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

 

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

 

ابزار molly-guard، یک اسکریپت پوسته نصب می‌کند که دستورات موجود برای shutdown ،reboot ،halt ،poweroff ،coldreboot ،pm-hibernate و *pm-suspend را بازنویسی می‌نماید و ابتدا مجموعه‌ای از اسکریپت‌ها را اجرا می‌کند که قبل از اینکه molly-guard دستور اصلی را فراخوانی نماید، همه آن‌ها باید با موفقیت خارج شوند.

این اسکریپت‌ها، نشست‌های SSH موجود را بررسی می‌کنند. اگر هر یک از دستورات فوق را در یک نشست SSH اجرا نمایید، اسکریپت از شما می‌خواهند نام میزبان مورد نظر را وارد کنید. بدین صورت molly-guard از خاموش شدن و راه‌اندازی مجدد سیستم جلوگیری می‌نماید.

molly-guard، باینری‌های واقعی را به مسیر /lib/molly-guard/ هدایت می‌کند. البته شما می‌توانید با اجرای مستقیم آن باینری‌ها، molly-guard را دور بزنید.

در ادامه، نحوه جلوگیری از خاموش شدن تصادفی یا راه‌اندازی مجدد سیستم SSH در سیستم عامل‌های یونیکسی به کمک ابزار molly-guard به شما آموزش داده می‌شود.

 

نصب و راه‌اندازی molly-guard

molly-guard، در مخازن پیش فرض دبیان، اوبونتو و سایر سیستم‌های مبتنی بر DEB مانند Linux Mint ،Elementary OS و غیره موجود است.

برای نصب molly-guard بر روی سیستم‌های مبتنی بر DEB، دستور زیر را اجرا کنید:

$ sudo apt-get install molly-guard

برای توزیع‌های مبتنی بر RPM می‌توانید، بسته molly-guard.deb را بارگیری کرده و همانطور که در ادامه توضیح داده شده است، به یک بسته مخصوص لینوکس تبدیل نمایید.

 

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

 

 

استفاده از molly-guard

پس از نصب ابزار molly-guard، زمان آزمایش این ابزار است. بدین منظور سعی کنید، سیستم ریموت یا vps خود را از طریق SSH خاموش کرده یا راه‌اندازی مجدد نمایید:

$ sudo poweroff
 W: molly-guard: SSH session detected!
 Please type in hostname of the machine to poweroff: ^C
 Good thing I asked; I won't poweroff ubuntuserver ...

 

همانطور که در خروجی مشاهده می‌نمایید، molly-guard از شما نام میزبان سرور اوبونتوی مورد نظر را می‌پرسد. در این صورت می‌توانید CTRL+C را بزنید تا سیستم خاموش نشود. این کار را می‌توانید، برای تمام دستورات خاموش کردن و راه‌اندازی مجدد سیستم امتحان کنید. در همه آن‌ها، از شما نام میزبان مورد نظر را درخواست می‌نماید.

sk@ubuntuserver:~$ sudo reboot 
W: molly-guard: SSH session detected!
Please type in hostname of the machine to reboot: ^C
Good thing I asked; I won't reboot ubuntuserver ...

sk@ubuntuserver:~$ sudo shutdown -r now
W: molly-guard: SSH session detected!
Please type in hostname of the machine to shutdown: ^C
Good thing I asked; I won't shutdown ubuntuserver ...

sk@ubuntuserver:~$ sudo shutdown -h now
W: molly-guard: SSH session detected!
Please type in hostname of the machine to shutdown: ^C
Good thing I asked; I won't shutdown ubuntuserver ...

sk@ubuntuserver:~$ sudo halt
W: molly-guard: SSH session detected!
Please type in hostname of the machine to halt: ^C
Good thing I asked; I won't halt ubuntuserver ...

 

چنانچه حتماً می‌خواهید، سیستم خود را خاموش کرده یا راه‌اندازی مجدد نمایید، تنها کافیست نام میزبان خود را وارد کنید.

W: molly-guard: SSH session detected!
Please type in hostname of the machine to halt: ubuntuserver
Connection to 192.168.43.2 closed by remote host.
Connection to 192.168.43.2 closed.

همانطور که در خروجی فوق مشاهده می‌کنید، نام میزبان سیستم اوبونتوی خود را وارد کردیم. اکنون، molly-guard می‌داند که به طور قطع می‌خواهیم، سیستم خود را خاموش کنیم؛ بنابراین اجازه می‌دهد، سیستم خاموش شود.

 

 

 

منبع:

ostechnix