Ssh- এ দীর্ঘকালীন কমান্ড করা


10

আমি sshএকটি সার্ভারে প্রবেশ করছি এবং আমি পাইথন স্ক্রিপ্ট শুরু করছি যা প্রায় গ্রহণ করবে। 24 ঘন্টা শেষ। যদি আমার ইন্টারনেট সংযোগ মাঝখানে মারা যায়? এই আদেশ কি থামাতে হবে?

আমার দীর্ঘ-চলমান কমান্ডটি এমনভাবে চালানোর কোনও উপায় আছে যেভাবে স্থানীয় সংযোগ বিচ্ছিন্নভাবে এটি প্রভাবিত না করে এবং আমি sshআবার লগ ইন করার পরে আমি এর আউটপুটটি দেখতে পারা যেতে পারি ?

উত্তর:


29

সর্বাধিক উপায় হ'ল screenকমান্ডটি চালনার জন্য একটি সেশন শুরু করার জন্য (সার্ভারে) ব্যবহার করা এবং তারপরে স্ক্রিনটি সংযোগ বিচ্ছিন্ন করা যাতে এটি চলতে থাকবে এবং আপনি অন্য কিছু করতে পারেন বা সার্ভার থেকে সংযোগ বিচ্ছিন্ন করতে পারেন। অন্য বিকল্পটি আপনার nohupসাথে মিলিয়ে ব্যবহার &করাnohup <command> &


স্ক্রিন। বা আপনি যদি ক্রোন টাস্ক সেটআপ করতে পারেন তবে এটি যদি আপনি চালিত হন তবে একবার।
xeon

2
স্ক্রিনে চলার সময় আপনি যদি সংযোগ বিচ্ছিন্ন হয়ে যান তবে screen -rআপনাকে পুনরায় সংযোগ দেবে।
dpflug

2

আপনি disownযদি ইতিমধ্যে প্রক্রিয়াটি শুরু করে থাকেন screenবা না করে শুরু করে থাকেন তবে আপনি এটিও ব্যবহার করতে পারেনnohup


2

বিদ্যমান উত্তরগুলি ভালভাবে কাজ করতে পারে তবে আমার ব্যাসিবক্সের জন্য কিছু দরকার (হোম রাউটারের মতো ন্যূনতম হার্ডওয়্যারের জন্য একটি শেল এবং সরঞ্জামের সেট)। আমার সিস্টেম নেই screen, dtach, at, disown, অথবা এমনকি nohup! তাই এসবি ( লিঙ্ক ) এ টিবিসি 0 ধন্যবাদ , আমি এই রত্নটি পেয়েছি। এটি অবিলম্বে ফিরে আসে তবে সার্ভার প্রক্রিয়াটি চলতে থাকে:

ssh myserver 'sleep 100 >&- 2>&- <&- &'

অথবা, যদি একাধিক কমান্ডের প্রয়োজন হয়:

ssh myserver '(echo one; sleep 100; echo two; sleep 200) >&- 2>&- <&- &'

ব্যাখ্যা:

  • >&- - স্ট্যান্ডআউট হ্যান্ডেলটি বন্ধ করুন
  • 2>&- - ক্লোজ স্টেডার
  • <&- - বন্ধ স্টিডিন
  • & - ব্যাকগ্রাউন্ডে প্রক্রিয়া রাখুন

এটি কোনও বাহ্যিক প্রোগ্রাম ব্যবহার করে না এবং কেএসএস, অ্যাশ, বোর্ন শেল, বাশ ইত্যাদি জুড়ে কাজ করা উচিত


1

আপনি যদি কোনও প্রক্রিয়া ব্যাকগ্রাউন্ড করেন এবং আপনার সেশনটি বন্ধ করেন তবে প্রক্রিয়াটি ডিআই (পিআইডি 1) দ্বারা গৃহীত হবে।

যদি আমার একটি সেশন থাকে এবং করি:

]$ sleep 10000 &
]$ exit

এবং অন্য সেশনটি খুলুন এবং রান করুন:

]$ ps -ef | grep sleep
501      26387     1  0 16:37 ?        00:00:00 sleep 10000
root     26422 21360  0 16:40 pts/0    00:00:00 grep sleep

আমার প্রক্রিয়াটি এখনও চলছে এবং আমরা দেখতে পাচ্ছি যে এর প্যারেন্ট প্রসেসটি এখন 1 (আরম্ভ)।

বিকল্পভাবে আপনি আপনার স্ক্রিপ্টটি সেট করতে পারেন যেমন আপনি ডেমন করেন। একটি দ্রুত অনুসন্ধান এই আপাতদৃষ্টিতে দরকারী লিঙ্কটি পরিণত করেছে: http://onlamp.com/python/pythoncook2/solution.csp?day=1 । আপনি যদি এই পদ্ধতির নিতে চান।

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