لینوکس و من

۵ مطلب در آذر ۱۳۹۶ ثبت شده است

انجام Hybernate بعد از مدت مشخصی Suspend

ما معمولا در لینوکس سیستم رو suspend میکنیم. خب این کار هزینه داره و از باتری یا برق برای فعال بودن استفاده میکنه. میتونیم در آرچی ها با سرویسی که در ادامه ایجاد میکنیم به سیستم میگیم که اگر بعد از ۲ ساعت suspend کسی resume نکرد، سیستم رو hybernate کن. این طوری مصرف باتری‌مون بهینه تر میشه و منطقی تر هم هست. البته به شرطی که swap داشته باشید.

ابتدا باید سرویس مورد نظرمون رو در systemd بسازیم:
--------------------------------------------------------
sudo gedit /etc/systemd/system/suspend-to-hibernate.service
--------------------------------------------------------

[Unit]
Description=Delayed hibernation trigger
Documentation=https://bbs.archlinux.org/viewtopic.php?pid=1420279#p1420279
Documentation=https://wiki.archlinux.org/index.php/Power_management
Conflicts=hibernate.target hybrid-sleep.target
Before=sleep.target
StopWhenUnneeded=true

[Service]
Type=oneshot
RemainAfterExit=yes
Environment="WAKEALARM=/sys/class/rtc/rtc0/wakealarm"
Environment="SLEEPLENGTH=+2hour"
ExecStart=-/usr/bin/sh -c 'echo -n "alarm set for "; date +%%s -d$SLEEPLENGTH | tee $WAKEALARM'
ExecStop=-/usr/bin/sh -c '\
  alarm=$(cat $WAKEALARM); \
  now=$(date +%%s); \
  if [ -z "$alarm" ] || [ "$now" -ge "$alarm" ]; then \
     echo "hibernate triggered"; \
     systemctl hibernate; \
  else \
     echo "normal wakeup"; \
  fi; \
  echo 0 > $WAKEALARM; \
'

[Install]
WantedBy=sleep.target


و بعد سرویس رو فعال می کنیم:
1. sudo systemctl enable disable-usb-wakeup.service
2. sudo systemctl start disable-usb-wakeup.service

غیر فعال کردن wakeup برای USBها

متوجه شدم که ماوس وایرلس باعث میشه بعد از suspend با حرکت دادن یا کلیک کردن، لپتاپ resume بشه. گشتی زدیم و راه حل یافتیم. باید یک سرویس برای systemd درست کنیم و این موضوع رو غیر فعال کنیم!

--------------------------------------------------------
sudo nano /etc/systemd/system/disable-usb-wakeup.service
--------------------------------------------------------
[Unit]
Description=Disable USB wakeup triggers in /proc/acpi/wakeup

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo XHC > /proc/acpi/wakeup; echo WLAN > /proc/acpi/wakeup"
ExecStop=/bin/sh -c "echo XHC > /proc/acpi/wakeup; echo WLAN > /proc/acpi/wakeup"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

حالا سرویس رو فعال میکنیم:
1. sudo systemctl enable disable-usb-wakeup.service
2. sudo systemctl start disable-usb-wakeup.service


نقل قول:ریچارد استالمن

chroot چیست؟


شاید تا به حال با CHROOT برخورد کرده باشید.مخصوصا هنگام نصب آرچ لینوکس
CHROOT چیست؟
CHROOT مخفف کلمه ی  change root به معنای تغییر ریشه هست.
سی اچ روت یک فراخوان سیستمی در سیستم عامل های شبه یونیکس هست که کارش تغییر دادن مسیر دایرکتوری ریشه(/) هست.با کمک این دستور میتونیم مسیر جاری پارتیشن روت رو تغییر بدیم.برای مثال:
 $chmod /mnt
طی این دستور مسیر دایرکتوری روت به  /mnt تغییر میکنه.
کاربرد این دستور موقعی هست که بخوایم در محیط یک توزیع,به پارتیشن روت یک توزیع دیگه وصل بشیم و از اون به عنوان پارتیشن روت اصلی استفاده کنیم.
وقتی مسیر دایرکتوری روت تغییر کنه,شما دیگه نمیتونید به فایل های خارج از اون دایرکتوری دسترسی داشته باشید.
چون شما حالا یک دایرکتوری روت جدید دارید.یک دایرکتوری روت شامل دایرکتوری های دیگه ای مثل home mnt etc var و ... هست که با اونها سرو کار داریم.برای مثال,اگر بعد از تغییر دادن مسیر دایرکتوری روت ,دستور زیر رو وارد کنید:
 $cd home
مسیر شما به دایکتوری home تغییر میکنه که درون دایرکتوری روت جدید هست.پس شما نمیتونید به دایرکتوری home که در خارج از دایرکتوری روت جدید هست دسترسی داشته باشید که اصطلاحا به اون زندانی شدن پروسه میگن.
برای درک بیشتر,عکس زیر رو با دقت ببینید.

chroot برای اولین بار در حین توسعه ورژن ۷ یونیکس به وجود اومد.

منبع:ویکی پدیا

تفاوت ادیتور ویم و وی آی



وی آی یک ویرایشگر متن هست که در همون روز های اول پیدایش یونیکس,توسعه پیدا کرد.در اون زمان وی آی سریعا به ادیتوری محبوب تبدیل شد و راه خودش رو به پاسیکس و SUS باز کرد؛اما به صورت آزاد در دسترس نبود(تا سال ۲۰۰۲)
بنابر این چند ادیتور بر شبه وی آی توسعه پیدا کردند تا به صورت نرم افزار آزاد در دسترس قرار بگیرند.ویم هم یکی از همین ادیتور ها بود.
کلمه (vim) مخفف vi improved به معنای وی آی پیشرفته,بهبود یافته هست.
ویم با الگو برداری وی آی نوشته شده پس همه ویژگی های وی آی در ویم هم موجوده.
و اما تفاوت هاشون.تفاوت این دو ادیتور صرفا در ویژگی هاشونه
ویم نسبت به وی آی ویژگی های بیشتری داره.برای مثال:

۱-ویم برای طیف وسیع تری از سیستم عامل ها پورت شده
۲-ویم دارای ویژگی هایی مثل هایلایت کردن کد,منوی کشویی,کامل کردن خودکار کد ها و... برای زبان های برنامه نویسی مرسوم مثل پایتون و سی و سی++ هست.
۳-ویم توانایی ادغام شدن با cscope رو داره(یک ابزار برنامه نویسی)
۴-ویم قابلیت تقسیم کردن اسکرین رو داره و همزمان در یک صفحه چند تا ادیتور در اختیارتون میزاره
۵-ویم میتونه فایل های درون یک فایل فشرده مثل zip,gzip,tar رو ویرایش کنه.
۶-ویم از پلاگین ها پشتیبانی میکنه.

این ها چند تا از ویژگی های ویم بود.علاوه بر ویم,ادیتور های دیگه ای هم با الگو برداری از  وی آی نوشته شدند مثل nvi و elvis که هر کدوم ویژگی های خاص خودشون رو دارن.

در حال حاضر ویم بر روی اوبونتو به صورت پیشفرض نصبه.