বাশ-এ চলমান কমান্ডের পরে কমান্ড কীভাবে কার্যকর করা যায়?


19

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

আমি জানি যে এটি কাজ করে:

উইজেট http://example.com/file.rar; এখন বন্ধ

তবে আমি যদি কেবল টাইপ করি তবে:

উইজেট http://example.com/file.rar

2
&& এবং || ব্যবহারের কথা বিবেচনা করুন পরিবর্তে ;. && এবং || পরবর্তী কমান্ডটি কার্যকর করার আগে পূর্ববর্তী কমান্ডের রিটার্ন মানটি পরীক্ষা করে দেখুন ... উইজেট ব্যর্থ হলে, আপনি শাটডাউন করতে না চাইতে পারেন।
কেএফরো

উত্তর:


31

আপনি এর মতো কিছু করতে পারেন:

  1. সিটিআরএল-জেড দিয়ে উইজেটের সম্পাদন বন্ধ করুন (এটি বন্ধ নয়, এটি স্থগিত করা হয়েছে)
  2. এটি পটভূমিতে রাখুন (বিজি)
  3. চালান: অপেক্ষা করুন; এখন বন্ধ

বর্তমান শেল থেকে পটভূমিতে সমস্ত প্রোগ্রামের জন্য অপেক্ষা করা অপেক্ষা করবে - এই উইজেট।

অপেক্ষা শেষ হওয়ার পরে - শাটডাউন চলবে।


আপনার উইজেট উদাহরণটি ফোরগ্রাউন্ড (fg) করতে ভুলে যাবেন না। যদি উইজেট ইতিমধ্যে চলমান থাকে তবে আপনি এটিকে ground z (কন্ট্রোল-জেড) দিয়ে অগ্রভাগে রেখে দিতে পারেন।
অ্যান্ড্রু Scagnelli

4
আপনি যদি সত্যিই অগ্রগতি বারটি দেখতে না চান তবে প্রয়োজন নেই।
dmckee

প্রয়োজন নেই যেহেতু সে নিজেই মেশিনটি রেখে চলেছে এবং তারপরে বন্ধ হয়ে যাবে।
নেকড়ে

11

অন্য শেলের মধ্যে, ব্যবহার করুন

ps -u <your username> | grep wget

আপনি যে কমান্ডটি অপেক্ষা করতে চান তার পিআইডি সন্ধান করতে

wait <PID>; shutdown -h now

যাতে প্রক্রিয়াটি শেষ না হওয়া অবধি শাটডাউন চলবে না। আরও দেখুন depesz এর উত্তর


+1, কেবলমাত্র একটি দ্রষ্টব্য: waitকেবল একই শেল থেকে শুরু হওয়া আদেশগুলির জন্য কাজ করবে
চ্রিকি

5

আমার সমাধানগুলি হ'ল কন্ট্রোল + জেড দিয়ে আপনার দীর্ঘ-চলমান কার্য স্থগিত করুন, তারপরে এমন কিছু টাইপ করুন:

fg; echo "Done!"

আপনি যদি আপনার আদেশের সাফল্য বা ব্যর্থতার ভিত্তিতে আলাদাভাবে প্রতিক্রিয়া চালাতে চান তবে && এবং || ব্যবহার করুন শর্ট সার্কিট অপারেটর হিসাবে।

fg && echo "Success!" || echo "Failure!"

সম্পাদনা: এটি সুডোর সাথে কাজ করবে না, কারণ এটি আপনার পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে। আমি, সেই অনুযায়ী, sudo ব্যবহার করে উদাহরণগুলি সরিয়েছি। দ্বিতীয় কাজের জন্য আপনার যদি সুডো দরকার হয় তবে এখানে পোস্ট করা পদ্ধতিগুলির মধ্যে আরও একটি ব্যবহার করুন।

অন্যদিকে, আমি বিশ্বাস করি যে জিনোম এবং কেডিআই উভয়ই উপযুক্ত ডি-বাস সিগন্যাল বা অন্য কিছু প্রেরণ করে সুডো ব্যবহার না করেই শাটডাউন / রিবুট ট্রিগার করার উপায় সরবরাহ করে।


+1 এর জন্য fg... তবে sudoসমস্যা হতে পারে যদি এটি আপনাকে একটি পাসওয়ার্ডের জন্য অনুরোধ করে
4o

হুম। হ্যাঁ, কিছু শেষ হয়ে গেলে আমি জিনিসগুলি সুডো করার জন্য এই কৌশলটি ব্যবহার করি নি। সুডোর জন্য আপনার আলাদা কৌশল দরকার। আমি সেই অনুযায়ী আমার পোস্ট সম্পাদনা করব।
রায়ান সি থমসন

আমার উদ্দেশ্যটির জন্য এই উত্তরটি সর্বোত্তম, কারণ এটি প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে সম্মুখভূমিতে ফিরে আসে
কুকি

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

1

হ্যাঁ, আপনার দ্বিতীয় কমান্ডটি টাইপ করুন এবং এন্টার টিপুন। যদি আপনার বর্তমান প্রোগ্রামটি পাঠ্য স্ক্রল করছে তবে আপনি কী সঠিকভাবে টাইপ করছেন তা দেখতে পাচ্ছেন না তাই আপনার কীগুলি ঠিকমতো করুন do

একটি স্মার্ট উপায় হ'ল অন্য টিটিওয়াই (CTRL + ALT + F1 এর মাধ্যমে F6) স্যুইচ করা এবং একই সাথে কমান্ড চালানো, বা আপনি যদি পর্দার মতো একটি কমান্ড-লাইন প্রোগ্রাম ব্যবহার করেন তবে আপনি এটিতে একটি নতুন উইন্ডো তৈরি করতে পারেন।


প্রথম বিকল্পের জন্য +1। আমি ভয় করি যে দ্বিতীয় বিকল্পটি কীভাবে কাজ করবে বলে আমি বুঝতে পারি না।
innaM

উদাহরণস্বরূপ CTRL + ALT + F2 চাপলে আপনি একটি নতুন দ্বিতীয় কনসোলে স্যুইচ হবেন যেখানে আপনি লগইন করে একটি কমান্ড টাইপ করতে পারবেন, এইভাবে আপনি সেখানে দ্বিতীয় কমান্ড চালাতে পারবেন। দ্বিতীয়ত, আপনি যদি স্ক্রিনটি ডাউনলোড করেন (আরও বেশি অভিনব উপায়ে আপনার কনসোলটি ব্যবহার করার জন্য একটি প্রোগ্রাম) আপনি দ্বিতীয় লগ / উইন্ডো খুলতে পারেন যেখানে আপনি আবার লগইন না করেই আদেশগুলি টাইপ করতে পারেন। তবে আপনার একই সাথে এটির প্রয়োজন অনুসারে আপনি বিকল্প 1 এ থাকতে পারেন, আমি মনে করি না একই প্রভাবটি অর্জনের অন্য কোনও উপায় আছে। প্রক্রিয়াটি এখনও চলছে কিনা আপনি স্ক্রিপ্টের মাধ্যমে পরীক্ষা করতে অন্য টিটিওয়াই / উইন্ডো ব্যবহার না করে। :
তামারা উইজসম্যান

Mামেকির উত্তর থেকে ওয়েট পিআইডি ব্যবহার করুন
কুকি

1

আপনি অভিনবতা পেতে চাইলে, উইজেটের রিটার্নের স্থিতি পরীক্ষা করুন এবং এটি সফল হলে কেবল শাটডাউন করুন।

% wget http://example.com/file.rar
% if [ $? -eq 0 ]
> then
> shutdown now
> fi

2
স্ক্রিপ্ট করার সময় এটি একটি ভাল পদ্ধতির, তবে wgetরান করার সময় আপনি পরীক্ষাটি তৈরির জন্য কোনও প্রম্পট ফিরে পাবেন না।
dmckee

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