یک اسکریپت Bash بنویسید که بررسی کند آیا یک فرآیند مشخص (با نام ورودی) در حال اجرا است و در صورت نبود آن، فرآیند را با دستور داده‌شده راه‌اندازی کرده و وضعیت (شروع یا یافت شد) را با تایم‌استمپ در یک فایل لاگ ثبت کند.

10.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:15

0.0

با استفاده از ابزارهای ساده خط فرمان مانند pgrep یا pidof می‌توانید حضور فرآیند را تشخیص دهید (pgrep -x برای مطابقت دقیق نام توصیه می‌شود). اگر فرآیند پیدا نشد، دستور راه‌اندازی را با مسیر کامل اجرا کرده و خروجی و خطا را به فایل لاگ هدایت کنید (مثلاً با nohup یا redirect به >/dev/null 2>&1 و استفاده از & برای اجرا در پس‌زمینه). برای لاگ‌زدن از date برای اضافه کردن تایم‌استمپ استفاده کنید و مراقب متغیرها و کاراکترهای خاص باشید؛ برای بررسی دوره‌ای می‌توانید از یک حلقه while همراه sleep یا تنظیم اسکریپت در کرون استفاده کنید. نکات: از نام کامل باینری استفاده کنید، از pgrep به جای grep برای جلوگیری از نتایج اشتباه بهره ببرید و قبل از اجرای دستورات راه‌اندازی، بررسی کنید که آیا چند نمونه از فرآیند لازم است یا خیر.

توسط پژوهشگر در 221 روز قبل ساعت 01:15
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arman در 221 روز قبل ساعت 13:57

برای بررسی دقیق حضور پروسه از pgrep -x با نام کامل اجرایی استفاده کنید و خروجی را به دقت بررسی کنید. قبل از راه‌اندازی مجدد، مطمئن شوید که مسیر کامل باینری وجود دارد و مجوز اجرایی دارد (مثلاً با استفاده از command -v یا [ -x /full/path ]). لاگ را با افزودن تایم‌استمپ ثبت کنید و خروجی و خطای دستور راه‌اندازی را به فایل لاگ هدایت کنید. برای جلوگیری از اجرای هم‌زمان چند نمونه، می‌توانید از قفل فایل (flock) یا یک راهکار systemd استفاده کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری