আমি কীভাবে চলমান লিনাক্স প্রক্রিয়াটিকে পটভূমিতে রাখতে পারি? [বন্ধ]


111

আমার একটি কমান্ড রয়েছে যা লিনাক্স শেল থেকে রিমোট সার্ভারে গিট ব্যবহার করে ফাইলগুলি আপলোড করে এবং এটি শেষ হতে অনেক ঘন্টা সময় লাগবে।

আমি কীভাবে চলমান প্রোগ্রামটিকে পটভূমিতে রাখতে পারি? যাতে আমি এখনও শেল নিয়ে কাজ করতে পারি এবং সেই প্রক্রিয়াটিও শেষ হয়ে যায়?


কেবল একটি অনুমান তবে আপনি কি ctrl + z ব্যবহার করার চেষ্টা করেছেন বা আপনার আদেশটি এভাবে চালিয়েছেন; # কম্যান্ড এবং
এরালপবি

কমান্ডটি ইতিমধ্যে চলছে তাই আমার অন্য বিকল্প নেই। কোন আদেশটি চেষ্টা করবেন তা আমি নিশ্চিত নই। আমি বর্তমান প্রক্রিয়াটি ভাঙতে চাইনি তাই আমি এটি পরীক্ষা-নিরীক্ষা করিনি
মেরাজ

আমাদের তখন আরও পেশাদার উত্তর অপেক্ষা করা উচিত :) আমি বলতে চাইছি যদি আপনার আবার সমস্ত শুরু করার সুযোগ থাকে। (আদেশ ও জিনিস)
এরালপবি

: এই প্রশ্নে গৃহীত ANSWERER তিনটি পদক্ষেপ যা নেওয়া দরকার ব্যাখ্যা stackoverflow.com/questions/625409/...
লিওনার্ড Saers

আপনি কেবল পুট্টির দ্বিতীয় উদাহরণ খুলতে পারেন এবং অন্য শেলটি পেতে আবার সার্ভারের সাথে সংযোগ স্থাপন করতে পারেন। যদিও সমাধানটি ctrl+zদুর্দান্ত।
এলা 782

উত্তর:


207

প্রক্রিয়াটি সিটিআরএল + জেড দিয়ে স্থগিত করুন এবং এরপরে bgপটভূমিতে পুনরায় শুরু করতে কমান্ডটি ব্যবহার করুন । উদাহরণ স্বরূপ:

sleep 60
^Z  #Suspend character shown after hitting CTRL+Z
[1]+  Stopped  sleep 60  #Message showing stopped process info
bg  #Resume current job (last job stopped)

ম্যানুয়াল পৃষ্ঠায় কাজের নিয়ন্ত্রণ এবং bgব্যবহার সম্পর্কে আরও bash:

জব নিয়ন্ত্রণ নিয়ন্ত্রণ স্থগিত অক্ষর (সাধারণত ^ জেড, নিয়ন্ত্রণ-জেড)
টাইপ করার সময় কোনও প্রক্রিয়া চলমান থাকে যে প্রক্রিয়াটি বন্ধ হয়ে যায় এবং ব্যাশে নিয়ন্ত্রণ ফিরে আসে। [...] এরপরে পটভূমিতে চালিয়ে যাওয়ার জন্য বিজি কমান্ড ব্যবহার করে ব্যবহারকারী এই কাজের স্থিতি নিয়ে সামাল দিতে পারেন, [...]। A ^ Z তাত্ক্ষণিকভাবে কার্যকর হয়, এবং মুলতুবি আউটপুট এবং টাইপহেডকে বাতিল করার অতিরিক্ত পার্শ্ব প্রতিক্রিয়া রয়েছে।

বিজি [ জবস্পেক ...] পটভূমিতে
প্রতিটি স্থগিত জবস্পেক পুনরায় শুরু করুন, যেন এটি & দিয়ে শুরু করা হয়েছে। যদি জবস্পেকটি উপস্থিত না থাকে তবে বর্তমান কাজের শেল ধারণাটি ব্যবহৃত হয়।

সম্পাদনা

এমন একটি প্রক্রিয়া শুরু করতে যেখানে আপনি এমনকি টার্মিনালটিকে হত্যা করতে পারেন এবং এটি এখনও চলছে

nohup [command] [-args] > [filename] 2>&1 &

যেমন

nohup /home/edheal/myprog -arg1 -arg2 > /home/edheal/output.txt 2>&1 &

কেবল আউটপুট উপেক্ষা করার জন্য (খুব জ্ঞানী নয়) ফাইলের নামটি এতে পরিবর্তন করুন /dev/null

ত্রুটি বার্তাটি অন্য একটি ফাইলে সেট &1করতে একটি ফাইলের নাম পরিবর্তন করুন ।

এছাড়াও: আপনি jobsএই পটভূমি প্রক্রিয়াগুলির তালিকাবদ্ধ তালিকা দেখতে কমান্ডটি ব্যবহার করতে পারেন । এবং আপনি চালিয়ে kill %1বা kill %2সংখ্যার সাথে প্রক্রিয়াটির সূচক হিসাবে একটি পটভূমি প্রক্রিয়াটিকে হত্যা করতে পারেন ।


আমি চেষ্টা করেছিলাম তবে এর আউটপুটিংয়ের কিছু হিসাবে, এটি আবার% -এ উপস্থিত হয়ে% দেখিয়েছে যে কত ডেটা আপলোড করা হয়েছে
মেরাজ

প্রক্রিয়াটি টার্মিনালে কোনও আউটপুট লিখবে আপনি প্রসেসটি শুরুতে এটি করার নির্দেশ দিয়েছিলেন। ফাইল বা লিখতে আউটপুট পেতে আপনাকে এটি পুনরায় চালু করতে হবে /dev/null। উপরে সম্পাদনা দেখুন।
এড হিল

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

হ্যাঁ সত্যই। প্রক্রিয়াটি কেবল যে শেলটি থেকে চলছে তা আপনি প্রক্রিয়াটিকে প্রভাবিত করতে পারবেন না। আপনি একটি করতে পারেন kill -9 <pid of your shellএবং তারপরে প্রক্রিয়াটি এখনও চলবে এবং আউটপুট ফেলে দেওয়া হবে - তবে আপনাকে নতুন শেল শুরু করতে আবার লগইন করতে হবে।
এড হিল

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