بیدار کردن رایانه در سیستمهای گنو با استفاده از rtcwake
rtcwake:
خب به احتمال زیاد واسه هممون پیش اومده که بخواهیم سیستممون تو یه زمان مشخص روشن بشه تا یه سری کارها رو در غیاب ما انجام بده.
مثلا وقتی خوابیم یا بیرونیم واسه دانلود یا ضبط فیلم یا رندر کردن یا انجام یه کار محاسباتی سنگین ویا روشن و خاموش کردن تلوزیون هوشمندی که با یه برد pi ساختین(البته اگه hw-clock داشته باشه) یا حتی روشن کردن سرور درزمان خاص
خب اگه میخواین بدونین چطوری و سیستم عاملتون هم گنو هست پس مطلب رو تا اخر بخونید.
rtcwake که جزئی از util-linux از کرنل ۲.۶ به سیستمها اضافه شد.
این برنامه برای روشن کردن سیستم با استفاده از سختافزار rtc در زمانی مشخص استفاده میشه و البته امکانش هست که بهش بگین در چه زمانی سیستم رو کدوم یکی از حالتهای خواب(Suspend) ببره.
واسه استفاده از نرمافزار دسترسی ریشه لازمه.
rtcwake -m [type of suspend/off] -s|t [s=time to sleep in sec|t=time to wake up]
مثال ساده واسه اینکه سیستم تعلیق بشه توی رم و بعد از ۶۰ ثانیه دوباره روشن بشه.
rtcwake -m mem -s 300
mem واسه اینه که تعلیق بشه توی رم
انواعش :
۱)حالت S1:standby . این حالت کمترین مقدار ذخیره انرژی رو ارائه میده و در این حالت فقط بعضی از سخت افزارها خاموش میشن. (مثلا صفحه مانیتور) این حالت پیشفرضه.
۲) حالت S2: freeze . در این حالت همه پروسهها متوقف، همه دستگاهها به حالت تعلیق و همه پروسسورها به حالت بیکار میرن.البته سیستم هنوز در حالت اماده است.این حالت توان بیشتری رو نسبت S1 و توان کمتری رو نسبت به S3 ذخیره میکنه .این حالت، حالتی هست که احتیاجی به پشتیبانی مشخصه سخت افزاری ندارد.(این حالت بعد از لینوکس ورژن 3.9 موجوده)
۳)حالت S3: mem . در این حالت سیستم به رم تعلیق پیدا میکنه. این حالت ذخیره انرژی قابل توجهی رو ارائه میکنه و هر چیزی در سیستم به حالت کم مصرف میره، بجز مموری که به حالت خود تازه کردن میره تا بتونه محتویاتش رو حفظ کنه.
۴) حالت S4: disk . این حاتل عالیترین ذخیره انرژی رو ارائه میکنه. این حالت حتی درعیاب پایینترین پشتیبانی سختافزاری نیز برای مدیریت انرژی ممکنه. این حالت شبیه حالت تعلیق در رم عمل میکنهبا با این تفاوت که شامل یک مرحله نهایی میشه و اون زخیره اطلاعات موجود در مموری در هارد دیسک هست.
۵) جالت S5: off .این حالت سیستم رو خاوش میکنه. این حالت بطور عمومی توسط ACPI پشتیبانی نمیشه و البته مهم هم نیست.در این خالت فقط دستور sbin/shutdown/ رو اجرا میکنه و معمولا هم کار میکنه.
۶) حالت no . دراین حالت فقط سیستم واسه بیداری تمظیم میشه.
۷)حالت on .این حالت فقط هم هیچکاری نمیکنه و فقط rtc رو میخونه تا اینکه زمان الارم سر برسه.این حالت واسه دیباگ کردن کاربردیه.
۸) disable . این الارم تنطیم شده رو غیر فعال میکنه.
مثال دوم : مثلا الان ساعت 2 هست میخواین الان سیستم رو خاموش کنه و ساعت 4 سیستم رو روشن کنه ۲*۳۶۰۰ = ۷۲۰۰
rtcwake -m off -s 7200
یا
rtcwake -m off -s $((2*3600))
این کار میتونه توسط دستور date هم انجام بشه
مثلا ساعت ۹ و 23دقیقه امشب
rtcwake -m no -l -t $(date -d ‘ 21:23’ +%s)
این -l میگه با توجه به ساعت محلی تنظیم کن و وجودش الزامیه چون از -t استفاده کردیم
مثلا واسه فردا ساعت ۱۱ صبح میشه
date -d 'tomorrow 11' +%s
مثلا دوشنبه هفته بعد میشه
date -d 'next Monday 04:00:23' +%s
اما میشه اینو با --date هم انجام بشه، مثلا مثالهای بالا با --date
rtcwake -m no --date +2hour
rtcwake -m no --date 21:23
والبته اینطوری باید به تاریخ بهش بدی مثلا میخواین روز اول سال ۲۰۱۷ کامپیوتر الکی بیدار بشه
rtcwake -m no --date 2017-00-00 00:01
یا
rtcwake -m no --date 20170101000100
کلا با اپشن --date این نوع فرمتها قبوله
YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm
YYYY-MM-DD
hh:mm:ss
hh:mm
tomorrow
+Xmin
اما محدودیتهای سخت افزای وجود داره در حالت عادی سیستم ما یه دونه rtc داره و به همین دلیل بیشتر از یه الام نمیتونید بزارید که میتونید لیست rtcها رو اینجا ببینید.
/proc/driver/
و اگه یه دونه دیگه تنظیم کنید روی قبلی جایزین میشه. اما اگه بیش از یکی داشته باشین میتونین با
-d rtc1 ...
اونای دیگه رو انتخاب کنید.
اما اسکریپتها و دیمون هایی وجود داره که این الارمها رو مدیریت و بعد از انجام یکی از الارمها بعدی رو تنظیم میکنه.
مثل این یکی.
خیلی مزیت بزرگیه، مثلا میتونین باهاش خانواده رو سر کار بزارین...
البته ممکنه روی کامپیوتر شما این قابلیتها یا بعضیاشون پشتیبانی نشه
- ۹۵/۰۹/۲۲