توجه: این مطلب قدیمی است و صرفا جهت آرشیو حفظ شده است. ممکن است امروزه برخی موارد یکسان نباشند.
/usr/bin/disablecard/
آرچ خیلی وقته که از systemd
استفاده میکنه. این ابزار برای کنترل سرویس ها است. برای اینکه اتفاق خاصی در زمان خاصی بیفته، باید اون رو تبدیل به یک سرویس کنیم و بدیمش به آرچ که بفهمه و اجراش بکنه. من زیاد جزئیات و عمق مطلب رو نمیدونم. صرفا با خوندن ویکی و چند بار آزمون و خطا موفق شدم. شما میتونید این کار رو تعمیم بدید و هر کاری که دوست دارید با سیستمتون انجام بدید.
در این مطلب من میخوام گرافیک nvidia رو خاموش کنم. من بازی نمیکنم و نیازی به این غول گرسنه ندارم! بنابراین یک اسکریپت از قبل دارم برای خاموش کردن nvidia که مثلا با نام disablecard در مسیر /usr/bin
گذاشتمش.
۱- یک فایل به اسم دلخواه nvidia-off.service در این فولدر میسازیم /usr/lib/systemd/system/
و این محتوی رو توش میریزیم!
[Unit]
Description=Turns off nvidia ion
After=slim.service
[Service]
ExecStart=/usr/bin/disablecard
Type=oneshot
[Install]
WantedBy=gdm.service
توضیح اینکه After یعنی اینکه این سرویس بعد از اجرای چه سرویسی باید اجرا بشه؟ من لیستی از سرویسهایی رو که هنگام بوت اجرا شده بودند با دستور systemctl list-unit-files --type=service
پیدا کردم. و دیدم مثلا کدوم سرویس enabled
هست. گفتم بعد از اون این اتفاق بیفته! شما هم میتونید به دلخواه خودتون ببینید سیستمتون چطوری تنظیم شده.
۲- برای resume
هم یک فایل به اسم دلخواه nvidia-off-resume.service
در همون فولدر میسازیم و این محتوی رو توش میریزیم:
[Unit]
Description=Turns off nvidia after resume
After=suspend.target
[Service]
Type=oneshot
ExecStart=/usr/bin/disablecard
[Install]
WantedBy=suspend.target
۳- حالا دستورات زیر رو یکی یکی اجرا میکنیم تا کارمون تکمیل بشه:
sudo systemctl daemon-reload
sudo systemctl enable nvidia-off-resume
sudo systemctl enable nvidia-off
و در پایان یک بار reboot میکنیم تا نتیجه رو ببینیم. که موفقیت آمیز بود! با مراجعه به ویکی آرچ میتونید کارهای پیچیده تر و جالب تری هم بکنید.
حاصل سر و کله زدن های من با لینوکس