অ্যাসিঙ্ক্রোনাস শেল কমান্ড


103

আমি একটি কমান্ড শুরু করতে শেল স্ক্রিপ্ট ব্যবহার করার চেষ্টা করছি। / কখন / কিভাবে / কেন এটি শেষ হয় তা আমি চিন্তা করি না। আমি প্রক্রিয়াটি শুরু হয়ে চালানো চাই, তবে আমি তত্ক্ষণাত আমার শেলের কাছে ফিরে যেতে সক্ষম হতে চাই ...


4
সম্পর্কিত, ইউনিক্স এবং লিনাক্স স্ট্যাক এক্সচেঞ্জে নোহপ, অস্বীকার করা এবং এর মধ্যে পার্থক্য দেখুন ।
jww

4
আরো গভীরভাবে উত্তর যে মধ্যে পার্থক্য সম্পর্কে আলোচনা খুঁজছেন তাদের জন্য nohup, &এবংdisown , চতুর্থ উত্তর স্ক্রল জন্য এখানে ক্লিক করুন
noɥʇʎԀʎzɐɹƆ

উত্তর:


119

আপনি কেবল পটভূমিতে স্ক্রিপ্টটি চালাতে পারেন:

$ myscript &

মনে রাখবেন এটি &আপনার স্ক্রিপ্টের ভিতরে রাখার থেকে পৃথক , যা সম্ভবত আপনি যা চান তা করতে পারে না।


4
আমি জানতাম এটি সহজ কিছু হতে চলেছে, ধন্যবাদ একটি টন ... লিনাক্স কেবল আমার জিনিস নয়, তবে আমি গতি বাড়ানোর চেষ্টা করছি ... বিটিডব্লিউ, নোহুপের সাথে মিলিত হয়ে কি এই কাজ করবে?
LorenVS

4
কমান্ড লাইনে & স্ক্রিপ্টে রাখার মধ্যে পার্থক্য কী? আমি জানি না যে তারা আলাদা ছিল।
জ্যাকব শরফ

8
@ জ্যাকবশারফ, একবার চেষ্টা করে দেখুন এবং আপনি দেখতে পাবেন। যদি &স্ক্রিপ্টের ভিতরে থাকে এবং আপনার কাছে না থাকে wait, স্ক্রিপ্টটি প্রস্থান করলে পটভূমি কমান্ডটি হত্যা করা হবে।
কার্ল নরম

উহু. এটি অনেক ব্যখ্যা করে. আমি সম্প্রতি কিছু প্রভাব লক্ষ্য করছিলাম যা এর ফলে ঘটবে। এটি গুগল করা আসলে আমাকে এই পৃষ্ঠায় নিয়ে যায়। ধন্যবাদ
জ্যাকব শরফ

যদি myscriptমডিফাই টার্মিনাল পরিবেশ, প্রাক্তন। এটি একটি টার্মিনাল ইনিশাইজেশন কমান্ড যা অবিলম্বে প্রয়োজন হয় না এবং বিলম্ব হতে পারে, এটি এখনও টার্মিনাল পরিবেশ পরিবর্তন করবে?
noɥʇʎԀʎzɐɹƆ

61

সবাই শুধু ভুলে গেছি disown। সুতরাং এখানে একটি সংক্ষিপ্তসার:

  • & কাজটিকে পটভূমিতে রাখে।

    • ইনপুট পড়ার চেষ্টা করে এবং এটিকে ব্লক করে তোলে and
    • শেলটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করে তোলে।
  • disown শেলের জব নিয়ন্ত্রণ থেকে প্রক্রিয়াটি সরিয়ে দেয়, তবে এটি এখনও টার্মিনালের সাথে সংযুক্ত রাখে।

    • ফলাফলগুলির মধ্যে একটি হ'ল শেলটি এটি প্রেরণ করবে না SIGHUP(শেলটি যদি একটি পায় তবে SIGHUPএটি SIGHUPপ্রক্রিয়াতে একটি প্রেরণ করে, যা সাধারণত প্রক্রিয়াটি শেষ করে দেয়)।
    • এবং স্পষ্টতই, এটি কেবল পটভূমির কাজগুলিতে প্রয়োগ করা যেতে পারে (কারণ আপনি যখন অগ্রভাগের কাজ চলছে তখন আপনি এটি প্রবেশ করতে পারবেন না)।
  • nohupটার্মিনাল থেকে প্রক্রিয়া সংযোগ বিচ্ছিন্ন, তার আউটপুট পুননির্দেশনা nohup.outএবং এ থেকেই ঢাল SIGHUP

    • প্রক্রিয়া কোনও প্রেরিত পাবেন না SIGHUP
    • এটি কাজ নিয়ন্ত্রণ থেকে সম্পূর্ণ স্বাধীন এবং নীতিগতভাবে অগ্রভাগের কাজের জন্যও ব্যবহৃত হতে পারে (যদিও এটি খুব কার্যকর নয়)।
    • সাধারণত &(পটভূমির কাজ হিসাবে) সাথে ব্যবহৃত হয় ।

আমি disownডেবিয়ান বা ওএস এক্সে খুঁজে পাচ্ছি না I আমি ভেবেছিলাম এটি একটি প্রোগ্রাম, তবে আমার মনে হয় ভুল হয়েছে। এটা কি?
jww


6
এটি সেরা উত্তর। সর্বাধিক বিস্তৃত।
noɥʇʎԀʎzɐɹƆ

4
অবশ্যই সর্বোত্তম উত্তর, জানেন না কেন এত ছোট আপস
HeberLZ

4
@ ভ্লাদগানশিন নং
অনি মেনন

42
nohup cmd

আপনি যখন টার্মিনালটি বন্ধ করেন তখন হ্যাঙ্গআপ হয় না। ডিফল্ট আউটপুট nohup.out এ যায় to

আপনি এটিকে ব্যাকগ্রাউন্ডিংয়ের সাথে একত্রিত করতে পারেন,

nohup cmd &

এবং আউটপুট পরিত্রাণ পেতে,

nohup cmd > /dev/null 2>&1 &

আপনি disownএকটি আদেশ করতে পারেন । টাইপ cmd, Ctrl-Z, bg,disown


4
দুর্দান্ত, ক্রেজি কীভাবে সমস্ত কিছু একত্রিত হয়, আমি মনে করি অর্ডারিংটি প্রথমে আমার কাছে আসবে তবে আমি মনে করি আপনি কেবল এটি মুখস্ত করতে পারতেন (আপনি যা লিখেছিলেন বা "
নোহুপ সেন্টিমিডে

আমি আজ রাতে হোঁচট খেয়েছি। আমি 2 দিন ধরে শেল স্ক্রিপ্টের সাথে লড়াই করছি এবং এই পরামর্শটি কাজ করে। অনেক ধন্যবাদ!
জেডি লং

দুর্দান্ত, এটি খুব দরকারী very ব্যাকগ্রাউন্ড মোডে চলাকালীন, আপনি একবার ব্যবহার করার পরে একবারে কমান্ডের আউটপুট পরীক্ষা করতে পারেন tail nohup.out, এটি কমান্ড আউটপুটের শেষ 10 লাইন প্রদর্শন করবে। বর্তমানে এটি কোন ফাইলটিতে রয়েছে তা দেখতে আমি এটি আরএসআইএনসি ব্যাকআপ কাজের জন্য ব্যবহার করি।
মার্টিন হ্যানসেন

আমি যদি এটি করি তবে পটভূমি প্রক্রিয়াটি বন্ধ করতে চাইলে কী হবে?
স্টিফান বিজজিটার

এই উদ্দেশ্যে আপনি যখন কাজটি সুনির্দিষ্টভাবে শুরু করেন তখন শেলটি একটি কাজের শনাক্তকারীকে মুদ্রণ করে। আপনি যে কোনও সময় আপনার চলমান কাজগুলি দেখতে পাবেন jobs
ট্রিপলি

26

বিকল্পভাবে, আপনি প্রোগ্রামটি চালু হওয়ার পরে, আপনি Ctrl-Z এ আঘাত করতে পারেন যা আপনার প্রোগ্রামটি থামিয়ে দেয় এবং তারপরে টাইপ করে

বিজি

যা আপনার শেষ থামানো প্রোগ্রামটিকে পটভূমিতে রাখে। (যদি আপনি '&' ছাড়াই কিছু শুরু করেন এবং এটি পুনরায় আরম্ভ না করে ব্যাকগ্রাউন্ডে এটি চান তবে দরকারী)


4
ধন্যবাদ, একটি দুর্দান্ত সামান্য কৌশলটি ... শেলের সদ্ব্যবহারের কিছুটা সত্যিই উপলব্ধি করা শুরু করে ...
লরেনভিএস

3

screen -m -d $command$বিচ্ছিন্ন সেশনে কমান্ডটি শুরু করে। আপনি screen -rশুরু অধিবেশন সংযুক্ত করতে ব্যবহার করতে পারেন । এটি একটি দুর্দান্ত সরঞ্জাম, দূরবর্তী সেশনের জন্যও অত্যন্ত দরকারী। আরও পড়ুন man screen


@ লাডেনকভভ্লাদিস্লাভ আমি ৯৫% নিশ্চিত আপনি রেডহ্যাটে স্ক্রিন ইনস্টল করতে পারবেন। আমার সেন্টোস আছে
বুভিন জে

উবুন্টুতে, আমি উইন্ডোজ / ব্যাচ "স্টার্ট" কমান্ডটি অনুকরণ করতে চেয়েছিলাম। অর্থাৎ অবিচ্ছিন্নভাবে একটি অগ্রভূমি (গুই) প্রোগ্রাম চালু করুন এবং শেল স্ক্রিপ্টের মাধ্যমে চালিয়ে যান। এটি ঠিক তা করে।
বুভিন জে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.