শাটডাউন কমান্ড প্রেরণের পরে, ssh সেশনটি শেষ হবে না


12

আমি যখনই আমার ডেবিয়ান সার্ভারগুলি বন্ধ বা পুনরায় চালু করার জন্য কমান্ডটি প্রেরণ করি তখন আমার শেলটি ঝুলন্ত এবং প্রতিক্রিয়াবিহীন ছেড়ে যায় (কোনও আদেশ আদেশ করতে পারে না)।

এখানে চিত্র বর্ণনা লিখুন

উবুন্টুতে একই ক্রিয়াকলাপটি সেশনটির ফলশ্রুতিতে বন্ধ হয়ে যায় ফলে আমার সেখানে কোনও ঝুলন্ত টার্মিনাল নেই। আমার কি কোনও প্যাকেজ ইনস্টল করার দরকার আছে বা একটি কনফিগারেশন পরিবর্তন করার দরকার আছে যাতে আমি ডিবিয়ানের সাথে একই আচরণ পেতে পারি?


sudo shutdown -h now(পাওয়ারঅফের জন্য), এবং / অথবা sudo reboot(পুনরায় চালু করার জন্য ) একই আচরণ দেখা দেয় ?
eyoung100

হ্যাঁ, এটি তাদের সাথেও ঘটে।
প্রোগ্রামার 20

2
এনবি আপনি <enter>, টিল্ড এবং পিরিয়ড (~।) টাইপ করে এই ঝুলন্ত ssh সেশনগুলির একটি মারতে পারেন।
কেন্সটার

উত্তর:


11

এটি আমার পক্ষে কাজ করেছে:

apt-get install libpam-systemd dbus

UsePAM yesআপনার ssh কনফিগারেশনে রয়েছে তাও নিশ্চিত করুন।

grep -i UsePAM /etc/ssh/sshd_config

দুর্ভাগ্যক্রমে, সমাধানটি কার্যকর হওয়ার জন্য আপনাকে পুনরায় বুট করা দরকার ...

সার্ভারফল্টে বিস্তারিত ব্যাখ্যা ।


আমার কেবল উবুন্টু 16.04 এ একই সমস্যা ছিল যার জন্য পূর্ববর্তী সমাধানটি কাজ করে না তবে এইটি করেছিল।
প্রোগ্রামার

7

দেখে মনে হচ্ছে এটি systemdবর্তমানে বাগ # 751636 এর অধীনে ট্র্যাক হওয়া একটি সমস্যা ।

হোস্টটি যখন শাট ডাউন বা পুনরায় চালু করা systemdহবে তখন এসএস সেশনটি মেরে দেওয়ার আগে নেটওয়ার্কটি বন্ধ করে দিতে পারে।

বেশ কয়েকটি সমাধান সরবরাহ করা হয়েছে তবে কিছুই কংক্রিট নয়:

  1. acpid/acpi-support-baseপাওয়ার ইভেন্টগুলি পরিচালনা করতে এবং এর সাথে নিম্নলিখিতটি যুক্ত করুন Using/etc/acpi/powerbtn-acpi-support.sh

    else
    -       # Normal handling.
    -       /sbin/shutdown -h -P now "Power button pressed"
    +
    +       if [ -x /bin/systemctl ] ; then
    +           echo "\nPower button pressed\nThe system is going down for system halt NOW!" |\
    +            /usr/bin/wall -n
    +           /bin/systemctl --force poweroff
    +       else
    +           # Normal handling.
    +           /sbin/shutdown -h -P now "Power button pressed"
    +       fi
    +
    fi
    

    এবং তারপরে আপনার এলিয়াস তৈরি করুন ~/.bashrc:

    alias reboot='echo "The system is going down for system reboot NOW!" |\
    /usr/bin/wall -n ; /bin/systemctl --force reboot'
    
    alias poweroff='echo "The system is going down for system halt NOW!" |\
    /usr/bin/wall -n ; /bin/systemctl --force poweroff'
    
  2. /etc/systemd/system/ssh-user-sessions.serviceএটিতে নিম্নলিখিতগুলি দিয়ে তৈরি করা হচ্ছে:

    [Unit]
    Description=Shutdown all ssh sessions before network
    After=network.target
    
    [Service]
    TimeoutStartSec=0
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/bin/true
    ExecStop=/usr/bin/killall sshd
    

এটির সম্পর্কে জানা একটি বাগ জানা ভাল ts আমি দ্বিতীয় সমাধানটি চেষ্টা করেছিলাম, তবে রিবুট কমান্ড প্রেরণের সময় এটি আমার পক্ষে কাজ করে না বলে মনে হয়। আমি এটি কার্যকর করতে নিশ্চিত করেছিলাম।
প্রোগ্রামার

1
সিস্টেমড ডিমনটি পুনরায় লোড করুন: systemctl daemon-reloadএছাড়াও তাত্ক্ষণিকভাবে সিস্টেমড পরিষেবাটি সক্রিয় করার জন্য: systemctl start ssh-user-sessions.serviceএবং সার্ভিসটি বুটআপে সক্ষম করতেsystemctl enable ssh-user-sessions.service
নিউরন

প্রথম 2 টি কমেন্ড চালনাটি কৌতুকটি করেছিল। তৃতীয় কমান্ড চালনার ফলস্বরূপ: The unit files have no [Install] section. They are not meant to be enabled using systemctl.তবে এটির প্রয়োজন মনে হয় না।
প্রোগ্রামার

হ্যাঁ, ইউনিট ফাইলটিতে একটি "[Install]"বিভাগ থাকতে পারে যা ইউনিটের জন্য ইনস্টলেশন সংক্রান্ত তথ্য বহন করে mention এই বিভাগটি systemdরানটাইমের সময় দ্বারা ব্যাখ্যা করা যায় না is এটি ইউনিট ইনস্টল করার সময় সরঞ্জামটির সক্ষমঅক্ষম কমান্ডগুলি দ্বারা একচেটিয়াভাবে ব্যবহৃত হয় systemctl
নিউরন

আমি ফাইলটিতে [Install]তারপরে যুক্ত করেছি WantedBy=multi-user.target, যার ফলে systemctl enable ssh-user-sessions.serviceকোনও ত্রুটি ছোঁড়াচ্ছে না এবং পরিষেবাটি পুনরায় বুট করার পরে কার্যকর হবে results এটি করে কিছু ভুল আছে?
প্রোগ্রামার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.