শেলের মধ্যে একটি নির্দিষ্ট সময়ের জন্য অ্যাপ্লিকেশনটি কীভাবে চালানো যায়


12

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


@ জ্যাকবভিলিজম ভাষাটির বহনযোগ্যতার কারণে এটি আদর্শভাবে একটি শেল স্ক্রিপ্ট হিসাবে চালিত হবে, মূলত ব্যবহারের উদ্দেশ্যে ক্ষেত্রটি একটি সিআই পরিষেবা হিসাবে।
আইআর-জি

1
@ ইর-জি আপনি সময়সীমা কমান্ডটি ব্যবহার করতে পারেন । যেমন টাইমআউট 30 এস কমান্ড
ম্যাক্যান্টসিন

উত্তর:


19

আপনি টাইমআউট কমান্ডটি ব্যবহার করতে চাইতে পারেন ।

timeout -k 10s 30s command

যা 30s এর জন্য কমান্ড চালাবে এবং 10 সেকেন্ড পরে এটি চালিয়ে গেলেও এটি হত্যা করবে kill - আরও বিকল্পের জন্য ম্যানপেজটি পরীক্ষা করুন।


1
@ ইর-জি আপনাকে স্বাগতম আপনি ওয়াচ কমান্ডটিও পরীক্ষা করতে চাইতে পারেন যা একই রকম এবং কমান্ড লাইনে ব্যবহার করা খুব সহজ।
ম্যাক্যান্টসিন

2
এই পয়েন্টারের জন্য ধন্যবাদ, watchএকটি খুব আকর্ষণীয় কমান্ড হিসাবে আমাকে আঘাত। উপকারে আসতে পারে ...
আইআর-জি

3

এখানে দুটি উপায় রয়েছে (তবে ম্যাক্যান্টসিন দ্বারা প্রস্তাবিতtimeout আদেশটি সম্ভবত আরও ভাল):

  1. ব্যাকগ্রাউন্ডে কমান্ডটি চালু করুন, তার পিআইডি সেভাবে সেভ হয়ে যায় $!এবং আপনি নির্দিষ্ট সময়ের পরে এটি হত্যা করতে ব্যবহার করতে পারেন:

    command &
    sleep 30 && kill $!
  2. কমান্ডটি চালু করুন এবং এটি ব্যবহার করুন pkillবা killallএটি হত্যা করুন। সতর্কতা: এটি ধরে নিয়েছে যে সেই নামের একটি মাত্র কমান্ড চলছে, আমি firefoxউদাহরণ হিসাবে ব্যবহার করছি :

    firefox &
    sleep 30 && pkill firefox

"সেই প্রক্রিয়াটির লগগুলি" দ্বারা আপনি কী বোঝেন তা আমার কোনও ধারণা নেই তবে কোনও প্রক্রিয়াটির স্ট্যান্ডার্ড ত্রুটিটি কোনও ফাইলে সংরক্ষণ করা যায় command 2> logfile.txt

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