লিনাক্স কনসোল স্ক্রিন ফাঁকা আচরণ পরিবর্তন করুন


38

আমি কীভাবে লিনাক্স ভার্চুয়াল টার্মিনালের স্ক্রিন ব্ল্যাকিং আচরণটি পরিবর্তন করব?

উদাহরণস্বরূপ, আমি যদি এক্স থেকে কোনও ভিটি-তে স্যুইচ করি, লগইন করে এবং 5 মিনিট বা তার জন্য সিস্টেমটি একা রেখে দিই, পর্দাটি স্ক্রিনসেভারের মতো ফাঁকা হয়ে যাবে। এটি কোনও স্ক্রিন-ওভারের মতো কোনও কী-চাপ সহ ফিরে আসে।

বেশিরভাগ ক্ষেত্রে আমি কেবল সময়সীমা পরিবর্তন করতে চাই তবে আমি অন্যান্য সেটিংসেও আগ্রহী।

যদি এটি সহায়তা করে তবে আমার সিস্টেমগুলির মধ্যে একটি স্টক গ্রাফিক্স ড্রাইভারগুলির সাথে উবুন্টু 10.04 চলছে। ফ্রেমবফার ডিভাইসটি fbsetব্যবহার করে কনসোলটি দেখায় radeondrmfb


2
আশা করি এটি আপনাকে সহায়তা করবে, যখন আমি একই প্রশ্ন জিজ্ঞাসা করেছি

উত্তর:


42

settermথেকে @ এর whitequark উত্তর একটি যুক্তিসঙ্গত ইউজার-স্পেস টুল, কিন্তু এটা পুরো বিবরণ নয়।

সংকলনের সময় ডিফল্ট কনসোল ফাঁকা আচরণ কার্নেলের মধ্যে বেক করা হয়। বুট করার সময় কনফিগার করা paramater সঙ্গে consoleblank = , অথবা ইউজার-স্পেসের মধ্যে setterm। কার্নেল ডকুমেন্টেশন ( কার্নেল-প্যারামিটার.টেক্সট ) থেকে:

consoleblank=  [KNL] The console blank (screen saver) timeout in
               seconds. Defaults to 10*60 = 10mins. A value of 0
               disables the blank timer.

আমার উবুন্টু সিস্টেমে বিকল্পগুলি, তাদের খেলাপি এবং তাদের প্রভাবের ক্ষেত্রগুলি এখানে:

  • setterm -blank [0-60]; জিজ্ঞাসা করা হলে সর্বদা 0 প্রতিবেদন করে; একটি বাস্তব ভিটি চালানোর সময় কার্যকর; সমস্ত বাস্তব টিটিওয়াইকে প্রভাবিত করে; কোনও ভিটিতে স্ক্রিন সেশনগুলি চালানোর সময় কার্যকর নয়।
  • setterm -powerdown [0-60]; সর্বদা "3]" (??) প্রতিবেদন করে; এর কোনও প্রভাব আছে বলে মনে হচ্ছে না। উবুন্টু কার্নেলগুলি APM_DISPLAY_BLANK সক্ষম করে না এবং এটি সম্পর্কিত হতে পারে।
  • consoleblank=N; ডিফল্ট 600 (10 মিনিট); সমস্ত বাস্তব ভিটিগুলিকে প্রভাবিত করে; কোনও ভিটিতে স্ক্রিন সেশনগুলিকে প্রভাবিত করে; চলার সময় সেট করার কোনও উপায় নেই।

সুতরাং ডিফল্ট পরিবর্তন করার জন্য আমার বিকল্পগুলি নিম্নলিখিতগুলির মধ্যে একটি:

  1. যোগ setterm -blank Xমত একটি শেল Init ফাইলে (নিষ্ক্রিয় করতে মিনিটের মধ্যে এক্স, 0) .bashrc
  2. যোগ setterm -blank Xকরার জন্য /etc/rc.local
  3. যোগ consoleblank=Y(ওয়াই সেকেন্ডের মধ্যে অক্ষম করতে, 0) মাপদণ্ড তালিকাতে যোগ করে কার্নেল কমান্ড থেকে , / etc / ডিফল্ট / কীড়া , হয় GRUB_CMDLINE_LINUX বা GRUB_CMDLINE_LINUX_DEFAULT । (ভুলবেন না update-grub।)

4
আমি নোট করতে চাই যে টিএমউক্সেরsetterm -blank X মধ্যে থেকে আমার পক্ষে কাজ করে না , তবে কমান্ডটি চালানোর আগে tmux থেকে বের হয়ে গেলে পুরোপুরি কাজ করেছি ।
কোডি হেস

1
আপনি যদি বুটলোডার হিসাবে গ্রুবি 2 ব্যবহার করে থাকেন তবে আপনি এই কার্নেল প্যারামিটারটিকে / etc / default / grub এ যোগ করতে পারেন GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"এবং তারপরে আপনার গ্রাব কনফিগারেশন আপডেট করতে পারেন grub[2]-mkconfig -o /boot/grub/grub.cfg
ব্যবহারকারী3132194

3]জন্য setterm -powerdown: শুধুমাত্র অর্ধেক সত্য setterm -powerdown 3 | hexdump -cআয় 033 [ 1 4 ; 3 ]। এই পালানোর ক্রমটি কী ব্যাখ্যা করবে তা নিশ্চিত করুন না ...
ড্যানিয়েল অ্যাল্ডার

1
আপনার বিতরণ এবং যেখানে আপনি পরিবর্তনটি কার্যকর হতে চান তার উপর নির্ভর করে এই বিকল্পগুলির কয়েকটি কার্যকর নাও হতে পারে। আমি খুঁজে পেয়েছি যে rc.local এ সেটটার্ম RHEL 5 এবং 6 এর জন্য দুর্দান্ত কাজ করে তবে 7 নয়
ডেভিড সি

9

চেষ্টা করুন setterm -blank $minutes(বা অক্ষম করতে 0 পাস করুন ); -powersaveবিকল্প সম্পর্কিত হতে পারে। settermএছাড়াও অন্যান্য দরকারী বিকল্প প্রচুর আছে।

আপনি যদি সিস্টেমের শুরুতে এই বৈশিষ্ট্যগুলি সেট করতে চান তবে ইনসক্রিপ্ট লেখার বিষয়টি বিবেচনা করুন। এটি কেবল /etc/init.dডিরেক্টরিতে রাখা একটি স্ক্রিপ্ট । এটি বলা যাক setterm:

#!/bin/sh
[ "$1" == "start" ] || exit 0 # only initialize everything when called as /etc/init.d/setterm start
for term in /dev/tty[0-9]*; do # select all ttyNN, but skip ttyS*
    setterm -blank 0 >$term <$term
    setterm -powersave off >$term <$term
done

তারপরে এটিকে সম্পাদনযোগ্য করে তুলুন:

# chmod +x /etc/init.d/setterm

এবং পরিশেষে, /etc/rcX.d সিমলিংকগুলি (দেবিয়ান উপায়) তৈরি করুন:

# update-rc.d setterm defaults

(আপনি যদি সেই আচরণে ক্লান্ত হয়ে পড়ে থাকেন তবে করুন # update-rc.d -f setterm removeNote নোটটি -fঅবশ্যই প্রথম যুক্তি হতে হবে)।


এইচআরএম। উড়ানের জন্য দরকারী বলে মনে হচ্ছে, এটি আমার পরীক্ষায় মনে হচ্ছে উবুন্টু সিস্টেম এটি বাস্তবে -powerdownকার্যকর সেটিংস। সিস্টেম-বিস্তৃত ডিফল্ট একটি বুট-সেট করার বিষয়ে কী? চলমান setterm -blank Xবা setterm -powerdown Yমধ্যে /etc/rc.local (অথবা ~ / .bashrc ) যুক্তিসংগত?
কোয়াকোট কোয়েসোট

1
হ্যাঁ, তবে কেবল যদি rc.localকাজ করে। (সাম্প্রতিক upstartমাইগ্রেশন কিছু জিনিসকে বিভ্রান্ত করেছে, এর মাধ্যমে আপাতভাবে উপস্থিত রয়েছে এবং এটি আমার সিস্টেমে কাজ করে)) অন্যথায় আপনার একটি ইনসক্রিপ্ট তৈরি করা উচিত। এটি সহজ: আমাদের ক্ষেত্রে, startপ্রথম আর্গুমেন্ট হিসাবে পাস করার সময় এটি অবশ্যই সবকিছু সূচনা করতে হবে এবং অন্যথায় কিছুই করবে না। আমি আমার উত্তরে তা বর্ণনা করব।
হোয়াইটকিয়ার্ক

কমান্ডটি setterm -blank X >/dev/ttyNকাজ করছে বলে মনে হচ্ছে না, তাই আমি মনে করি না যে ইনসাইট স্ক্রিপ্ট ধারণাটি কাজ করবে। একটি বুটটাইম প্যারামিটার জুড়ে দৌড়েছে এবং আরও কিছু গবেষণা করেছে। আমি সম্পর্কে ভুল বলে মনে হচ্ছে -powerdownএবং -powersave; সম্পূর্ণরূপে পরীক্ষা করা হয়নি তবে সেগুলি আমার সিস্টেমে কাজ করছে না। setterm -blank Xকেবল আসল ভিটি থেকে কাজ করে এবং সমস্ত ভিটিগুলিকে প্রভাবিত করে, তাই /etc/rc.local এর মাধ্যমে একবার চালানো যুক্তিসঙ্গত। (ভুঁইফোড় দূরে লাগবে না rc.local, শুধু /etc/rcX.d কাপড়।)
হাতুড়ে Quixote

1
হুম। দেখে মনে হচ্ছে এটি settermপালানোর সিকোয়েন্সগুলি নির্গত করে stdoutতবে stdinএটি দিয়ে টিটিওয়াই টাইপ পরীক্ষা করে : আমি সবেমাত্র যাচাই করেছি এবং setterm ... >/dev/ttyN </dev/ttyNইচ্ছামত কাজ করি।
হোয়াইটকিয়ার্ক

এটি উপলব্ধি করে এবং এটি কার্যকর হয় (আসল টিটিওয়াই থেকে) তবে এই সিনট্যাক্সটি আদৌ ব্যবহার করার কী দরকার? (1) এখনও পর্দার মধ্যে থেকে কাজ করে না (বা সম্ভাব্য অন্যান্য পিটিওয়াই), যেখানে / dev / ttyN নির্দিষ্ট করা কার্যকর হবে; (২) একটি ভিটি সেট করা সমস্তকে প্রভাবিত করে, তাই ইনসক্রিপ্ট লুপের প্রয়োজন নেই।
কোয়াকোট কোয়েসোট

3

যদি কেউ ডেবিয়ান (সম্ভবত উবুন্টু নয়) এর জন্য অন্য কোনও সম্ভাব্য সমাধান খুঁজছেন:

ইন /etc/kbd/config, "BLANK_TIME" নামে একটি সেটিংস সন্ধান করুন:

# screen blanking timeout.  monitor remains on, but the screen is cleared to
# range: 0-60 min (0==never)  kernels I've looked at default to 10 minutes.
# (see linux/drivers/char/console.c)
BLANK_TIME=30

এটি 0 এ পরিবর্তন করুন, এটি এটি অক্ষম করবে:

BLANK_TIME=0

দেবিয়ান 6 এবং 7 তে পরীক্ষা করা হয়েছে।


2

আপনি যদি একটি নতুন উবুন্টু চালাচ্ছেন যা আপস্টার্ট ব্যবহার করে, আপনি ব্যবহার করতে পারেন:

for file in /etc/init/tty*.conf; do tty="/dev/`basename $file .conf`"; echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty" | sudo tee -a "$file"; done

এখানে কী চলছে তার একটি ছোট্ট ব্যাখ্যা:

নতুন উবুন্টু সংস্করণগুলি সিস্টেম স্টার্টআপের জন্য আপস্টার্ট ব্যবহার করে। আপস্টার্টের সাহায্যে লিনাক্স কনসোলগুলি / etc / init -র মধ্যে সংরক্ষিত কনফিগারেশন ফাইলগুলির সাথে সেটআপ করা হয়। উপরের কমান্ডটি সেই কনফিগার ফাইলগুলির প্রত্যেকটির পুনরাবৃত্তি করে শুরু হবে:

for file in /etc/init/tty*.conf;

Tty ডিভাইসের নাম তৈরি করতে build ফাইলটিতে টিস্টির আপস্টার্ট কনফিগারেশন ফাইলের নাম ব্যবহৃত হয়:

tty="/dev/`basename $file .conf`";

একটি আপস্টার্ট "পোস্ট-স্টার্ট" কমান্ডটি নির্মিত হয়েছে যা টিটিটি শুরু হওয়ার পরে পর্দা ফাঁকা এবং পাওয়ার সাশ্রয় অক্ষম করতে "সেটটার্ম" চালায়:

echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty"

এবং অবশেষে command কমান্ডটি আপস্টার্ট কনফিগারেশন ফাইলে যুক্ত হবে:

| sudo tee -a "$file";

2

আমার সিস্টেমে (রেডহ্যাট এন্টারপ্রাইজ লিনাক্সের বিভিন্ন প্রকাশ), আমি খুঁজে পেয়েছি যে বিভিন্ন পদ্ধতির প্রয়োজন।

আমার RHEL 5 এবং 6 সিস্টেমের জন্য, আমি লাইনটি যুক্ত করতে সক্ষম

/bin/setterm -blank 0 -powerdown 0 -powersave off

to /etc/rc.local। এটি সিস্টেম স্টার্টআপে কনসোল স্ক্রিন ফাঁকা অক্ষম করে।

আমি দেখেছি যে এটি আরএইচএল 7 সিস্টেমে কাজ করে না। RHEL7- এ, rc.local থেকে সেটটারম চালানো ত্রুটি তৈরি করার কারণ ঘটায়:

setterm: $TERM is not defined.

কমান্ডটি একটি ইন্টারেক্টিভ শেল থেকে কাজ করে, যেখানে ER TERM সংজ্ঞায়িত (যেমন linux)। যদি আমি সেটটারম এটি ব্যবহার করতে বাধ্য করি:

/bin/setterm -term linux -blank 0 -powerdown 0 -powersave off

তারপরে আমি একটি ভিন্ন ত্রুটি পেয়েছি:

setterm: cannot (un)set powersave mode: Inappropriate ioctl for device

যদিও একই কমান্ড একটি ইন্টারেক্টিভ সেশন থেকে সূক্ষ্মভাবে কাজ করে। consoleblankকার্নেল প্যারামিটার নির্ধারণ কাজ করে।

RHEL7, সম্পাদনা উপর /etc/default/grubএবং পরিশেষে যোগ consoleblank=0করার GRUB_CMDLINE_LINUXপ্যারামিটার। তারপরে দৌড়ে grub2-mkconfig -o /boot/grub2/grub.cfgপুনরায় বুট করুন।

আমি consoleblankRHEL5 বা 6 এ সেট করার চেষ্টা করিনি ।


2
RHEL7 systemd ব্যবহার করে; rc.local ডিফল্টরূপে টার্মিনালের সাথে সংযুক্ত থাকে না। আমি মনে করি আপনি এটি যুক্ত করতে </dev/tty1 >/dev/tty1বা এটির কাজ করার জন্য কিছু করতে পারেন
সোর্সজেডি

1

লিনাক্স কনসোল ব্যক্তিগত সিএসআই সিকোয়েন্সস

sleep mode/screensaverপ্রবেশের সময় সেট করতে (যেখানে মিনিটের মধ্যে এক্স সময়; 0 = কখনই নয়):

(সিরিয়াল কনসোল থেকে)

echo -e '\033[9;X]' > /dev/tty1    

বা (ফ্রেমবফার কনসোল থেকে)

echo -e '\033[9;X]'    

বা প্রতিটি বুটে সেট করতে, ব্যবহার করুন /etc/inittab:

tty1::sysinit:echo -e '\033[9;X]'

refs:


0

gnome-screensaver-command --exitআমার .profileফাইলে যুক্ত করা আমার পক্ষে ডেবিয়ান লিনাক্স (হুইজি) এ এই সমস্যাটি সংশোধন করেছে।

ভেবেছিলাম আমি স্ক্রিন-ব্ল্যাকিং বন্ধ করার চেষ্টা করে যারা অন্যদের চুল টানছেন তাদের সহায়তা করার জন্য আমি এটি যুক্ত করব।

"বিদ্যুৎ সাশ্রয় করার জন্য ডিম স্ক্রিন" শিরোনামযুক্ত একটি চেকবক্সটি ত্রুটিযুক্ত। এমনকি চেক করা না থাকলেও এটি নির্বাচিত নিষ্ক্রিয়তার সময় অনুযায়ী পর্দা ফাঁকা রাখবে।

আপডেট: আমার sleep 30 && /usr/bin/gnome-screensaver-command --exit &এটিকে সঠিকভাবে কাজ করা প্রয়োজন। জিনোম স্ক্রিনসভারটি প্রফাইলে প্রক্রিয়া করা হওয়ার অনেক পরে শুরু হবে বলে মনে হচ্ছে।


2
এটি কনসোল স্ক্রিন ব্ল্যাকিং সম্পর্কে, জিনোম স্ক্রীনসভারগুলি নয়।
বেসিক 6
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.