কমান্ডটি reboot -fকখনই ফিরে আসে না (যদি না আপনি রিবুট করার অনুমতি না পান)। এটি জারি করা হয়েছে এমন স্থানে, এসএসএইচ ক্লায়েন্ট কিছু করার জন্য অপেক্ষা করছে, যা হতে পারে:
- এসএসএইচ সার্ভার ক্লায়েন্টকে অবহিত করছে যে এমন কিছু ঘটেছে যার দিকে মনোযোগের প্রয়োজন রয়েছে, উদাহরণস্বরূপ যে এখানে প্রদর্শিত কিছু আউটপুট রয়েছে বা দূরবর্তী কমান্ডটি শেষ হয়েছে;
- ক্লায়েন্ট পক্ষের কিছু ইভেন্ট, যেমন রিলে সংকেত;
- একটি ক্লাব ক্লায়েন্টকে একটি রক্ষণশীল বার্তা প্রেরণের জন্য (এবং সার্ভারের জবাব না দিলে সংযোগটি বন্ধ করুন) চালিয়ে যাওয়ার জন্য একটি টাইমার গুলি চালিয়ে যাচ্ছে।
যেহেতু এসএসএইচ সার্ভার প্রক্রিয়াটি মারা গেছে, এসএসএইচ ক্লায়েন্টটি টাইমার না হওয়া পর্যন্ত মারা যাবে না।
আপনি যদি চালনা করেন ssh remotehost 'reboot -f >/dev/null &'তবে যা ঘটে তা হ'ল:
- রিমোট শেল
rebootপটভূমিতে কমান্ডটি আরম্ভ করে ।
- যেহেতু সার্ভার-সাইড শেল কমান্ডটি প্রস্থান করেছে এবং স্ট্যান্ডার্ড আউটপুট খোলার জন্য ফাইল বর্ণনাকারী ধারণ করার কোনও প্রক্রিয়া নেই, এসএসএইচ সার্ভারটি সংযোগটি বন্ধ করে দেয়।
rebootকমান্ড পুনরায় বুট করার মেশিন ঘটায়।
তবে এটি নির্ভরযোগ্য নয়: টাইমিংয়ের উপর নির্ভর করে ধাপ ৩ য় ধাপের আগে ঘটতে পারে happen টাইমার যুক্ত করা এটিকে অসম্ভব করে তোলে:
ssh remotehost '{ sleep 1; reboot -f; } >/dev/null &'
সম্পূর্ণরূপে নিশ্চিত হতে যে সার্ভার সাইডটি চলমান rebootপ্রতিশ্রুতিবদ্ধ, ক্লায়েন্টকে প্রতিশ্রুতিবদ্ধ হওয়ার আগে জানানোর আগে এটি রিবুট হয় না তা নিশ্চিত করার জন্য, সার্ভার থেকে ক্লায়েন্টে যাওয়ার জন্য আপনার একটি অতিরিক্ত বিজ্ঞপ্তি প্রয়োজন। এটি এসএসএইচ সংযোগের মাধ্যমে আউটপুট হতে পারে তবে এটি জটিল হয়ে ওঠে।