এসএসএইচ সংযোগ চালু থাকা অবস্থায় মেশিনকে ঘুম থেকে আটকাতে হবে


13

ডেস্কটপগুলি নিষ্ক্রিয় মোডে নিষ্ক্রিয় করার সময় আমি শক্তি সঞ্চয় করার চেষ্টা করছি যখন তারা নিষ্ক্রিয় থাকে। তবে অনেকগুলি ডেস্কটপগুলি এসএসএইচ এর মাধ্যমে তাদের মালিকদের দ্বারা অ্যাক্সেস করা যায়। মালিকদের মেশিনটি স্যুইচ করতে সক্ষম করার জন্য একটি ওয়াগনলান সলিউশন মোতায়েন করা হয়েছে, তবে সমস্যাটি হচ্ছে এসএসএইচ সংযোগ চালু থাকা সত্ত্বেও 10 মিনিটের মধ্যে মেশিনগুলি আবার স্বয়ংক্রিয়ভাবে স্থগিত করবে।

আমি যা করার চেষ্টা করছি তা হল সক্রিয় এসএসএইচ সেশনগুলিকে "ক্রিয়াকলাপ" সংজ্ঞাগুলিতে অন্তর্ভুক্ত করা।

প্রশ্নটি হ'ল এটি কি পলকিট নিয়ম স্থাপনের মাধ্যমে করা যেতে পারে? প্রকৃত স্থগিতের আগে চলে এমন স্ক্রিপ্ট স্থাপনের মাধ্যমে এটি করা যায় এবং এসএসএইচ সেশনগুলি পাওয়া গেলে এটিকে বাতিল করে দেওয়া যায়? আমার এটি করার একটি পরিষ্কার বৈধ উপায় দরকার। যদি তা না হয়, তবে হ্যাকি উপায়গুলিও স্বাগত।

বর্তমান নিষ্পাপ হ্যাকির সমাধান: সম্পাদনা করুন /usr/sbin/pm-suspend:

#check for SSH sessions, and prevent suspending:
if [ "$(who | grep -cv "(:")" -gt 0 ]; then
    echo "SSH session(s) are on. Not suspending."
    exit 1
fi

এটি উদ্দেশ্য পরিবেশন করে। তবে আমি জানিনা কখন কোন আপডেট ফাইলটি ওভাররাইট করবে /usr/sbin/pm-suspend। টুকসোনাইসের মতো অন্যান্য স্থগিতাদেশিক প্রয়োগের সাথে এটি কীভাবে কাজ করবে তা আমি জানি না।


2
আমি কি grep -cv :0পাশ দিয়ে যাওয়ার পরিবর্তে ব্যবহারের পরামর্শ দিতে পারি wc?
টেরডন

1
আরও কমনীয়তার জন্য আরেকটি ধারণা: আপনি [যদি লিখেন তবে আপনি এই অনুরোধটি বাদ দিতে পারেন if who | grep -qv :0; then(ধরে নিবেন যে আপনার কাছে grepজিএনইউ গ্রেপের মতো একটি পসিক্স রয়েছে )।
ডেভিড ফোস্টার

উত্তর:


19

উবুন্টু 14.10 (আপস্টার্ট ভিত্তিক) অবধি

"ফাইলগুলি" বিভাগে দেখুন pm-action(8)এবং অনুসন্ধান করুন /etc/pm/sleep.d। এই স্ক্রিপ্টগুলির মধ্যে একটি যদি শূন্য-বহির্গমন স্থিতি দিয়ে ফিরে আসে তবে সাসপেনশন রোধ করা হবে।

স্বচ্ছতার জন্য আপডেট নির্দেশাবলী:

  1. সুতরাং একটি ফাইল তৈরি করুন /etc/pm/sleep.d/05_ssh_keepawake

  2. এই ফাইলটিতে প্রশ্নের মধ্যে উল্লিখিত একটি শেবাং ( #!/bin/sh) এবং কোডটি রাখুন ।

  3. এটিতে নির্বাহের অনুমতিগুলি সেট করুন:

    chmod +x /etc/pm/sleep.d/05_ssh_keepawake
    

উবুন্টু ১৫.০৪ (সিস্টেম ভিত্তিক)

সিস্টেমড তার পাওয়ার স্টেট হুক পরিচালনা করতে পিএম- ইউজ ব্যবহার করে না তবে একই প্রান্তে তার নিজস্ব অবকাঠামো রয়েছে। স্লিপ ইনহিবিটার চেকারগুলিকে আর ঘুমের উপরে মৃত্যুদন্ড কার্যকর করা হয় না তবে ঘুমকে বাধা দেয় এমন ক্রিয়াটি দ্বারা সেট করা আবশ্যক (দেখুন 1 )।

এর মতো আপনাকে এসএসএইচ সেশনের লগ-ইন এবং লগ-আউটে কমান্ড যুক্ত করতে হবে যা সিস্টেমড (যেমন মাধ্যমে systemd-inhibit(1)) দিয়ে একটি স্লিপ ইনহিবিটারকে রেজিস্টার করে এবং পরে ইনহিবিটারটি প্রকাশ করে। যদি কেউ জানেন যে কীভাবে এসএসএইচ লগ-ইন এবং লগ-আউট করা যায়, তবে আমি একটি মন্তব্য স্বাগত জানাব বা সম্পাদনা করব যাতে আমরা প্রাসঙ্গিক পদক্ষেপ এবং আদেশগুলি কার্যকর করতে পারি।

নিম্নলিখিত বিভাগটি কাজ চলছে - আপনি যখন যা করছেন জানেন কেবল তখনই এটি ব্যবহার করুন!

আপনি একটি সিস্টেমড ইউনিট লিখতে সক্ষম হতে পারেন যা বিকল্পটি ব্যবহারের ক্ষেত্রে /etc/systemd/system/ssh-inhibt-sleep.serviceনিজেকে নির্ভর করে তোলে । যদি আপনার নতুন ইউনিটটি ব্যর্থ হয় (এটির প্রক্রিয়া থেকে শূন্য-বহির্গমন স্থিতি সহ), এটি তৈরি করবে এবং এভাবে পরবর্তী ক্রিয়াকলাপটি ঘটবে ।sleep.targetRequiredBysleep.target

[Unit]
Description=Check for running SSH sessions and, if any, inhibit sleep
Before=sleep.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c '! who | grep -qv :0'`

[Install]
RequiredBy=sleep.target

তাদের কার্যকর হওয়ার জন্য আপনাকে সর্বদা সিস্টেমেড ইউনিটগুলি সক্রিয় করতে হবে:

sudo systemctl enable ssh-inhibt-sleep.service

আরও তথ্যের জন্য দেখুন systemd.unit(5)এবং systemd.service(5)


এটি 18.04 এ কাজ করবে বলে মনে হচ্ছে না। এটি কি আর সমাধান হয় না?
মাইকেল জারেট

1
@ মাইকেল জ্যারেট: আসলেই। আমি সিস্টেমেডের সাথে পরিস্থিতি সম্পর্কে কিছু তথ্য দিয়ে আমার প্রশ্ন আপডেট করেছি।
ডেভিড ফোস্টার 13

গতকাল এটিকে বাছাই করার চেষ্টা করার সময় আমি নিম্নলিখিতটি পেয়েছি, তবে এখানে
মাইকেল জারেট

আমি আমার মন্তব্য সম্পাদনা করতে পারবেন না, কিন্তু এই প্রাসঙ্গিক বলে মনে হয়
মাইকেল Jarret

1
@ মিশেল জারেট: আমার আরেকটি ধারণা ছিল যে আপনি চেষ্টা করতে পারেন। আমার উত্তরের আপডেটটি দেখুন।
ডেভিড ফোস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.