یک اسکریپت Bash بنویسید که بررسی کند آیا یک فرآیند مشخص (با نام ورودی) در حال اجرا است و در صورت نبود آن، فرآیند را با دستور دادهشده راهاندازی کرده و وضعیت (شروع یا یافت شد) را با تایماستمپ در یک فایل لاگ ثبت کند.
10.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:15 0.0
با استفاده از ابزارهای ساده خط فرمان مانند pgrep یا pidof میتوانید حضور فرآیند را تشخیص دهید (pgrep -x برای مطابقت دقیق نام توصیه میشود). اگر فرآیند پیدا نشد، دستور راهاندازی را با مسیر کامل اجرا کرده و خروجی و خطا را به فایل لاگ هدایت کنید (مثلاً با nohup یا redirect به >/dev/null 2>&1 و استفاده از & برای اجرا در پسزمینه). برای لاگزدن از date برای اضافه کردن تایماستمپ استفاده کنید و مراقب متغیرها و کاراکترهای خاص باشید؛ برای بررسی دورهای میتوانید از یک حلقه while همراه sleep یا تنظیم اسکریپت در کرون استفاده کنید. نکات: از نام کامل باینری استفاده کنید، از pgrep به جای grep برای جلوگیری از نتایج اشتباه بهره ببرید و قبل از اجرای دستورات راهاندازی، بررسی کنید که آیا چند نمونه از فرآیند لازم است یا خیر.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای بررسی دقیق حضور پروسه از pgrep -x با نام کامل اجرایی استفاده کنید و خروجی را به دقت بررسی کنید. قبل از راهاندازی مجدد، مطمئن شوید که مسیر کامل باینری وجود دارد و مجوز اجرایی دارد (مثلاً با استفاده از command -v یا [ -x /full/path ]). لاگ را با افزودن تایماستمپ ثبت کنید و خروجی و خطای دستور راهاندازی را به فایل لاگ هدایت کنید. برای جلوگیری از اجرای همزمان چند نمونه، میتوانید از قفل فایل (flock) یا یک راهکار systemd استفاده کنید.
گزارش