সিটিআরএল-BREAK এর পরে পাওয়ারশেলটি খোলা রাখা


10

আমি উইন্ডোজ ভিস্তা পাওয়ারশেলের পাইথন জ্যাঙ্গোর সাথে কাজ করছি। আমি দৌড়ানোর পরে python manage.py runserver, এটি CTRL-BREAKপ্রক্রিয়াটি বন্ধ করতে বলছে । তবে আমি এটি টাইপ করার পরে, পাওয়ারশেল প্রক্রিয়াটি বন্ধ করে এবং বন্ধ করে দেয়। প্রক্রিয়াটি বন্ধ করার এবং পাওয়ারশেলকে উন্মুক্ত রাখার কোনও উপায় আছে কি?


এই জ্যাঙ্গো-উইন্ডোজ ডিফল্টটি অনেক কারণের জন্য ভয়ঙ্কর (যেমন অনেক ল্যাপটপ এমনকি বিল্ট-ইন ভার্চুয়াল কীবোর্ডের ব্রেক কী নেই)। আমি আশা করি আমি একটি কাজের আশেপাশে খুঁজে পেতে পারি।
মর্টোক

পাইথন প্রায়শই একটি প্রক্রিয়া থেকে প্রস্থান / বন্ধ করতে কী করা উচিত তা সম্পর্কে মিথ্যা বলে। তবে আপনি অন্যান্য সিটিআরএল- <বিজ্ঞাপন> চেষ্টা করতে পারেন। উদাহরণস্বরূপ: সিটিআরএল-সি / জেড / ডি
২২

@ ব্যবহারকারী 1147688 সিটিআরএল + ব্রেক তত্ক্ষণাত উইন্ডোজে পাইথন ইন্টারপ্রেটারকে হত্যা করে যখন সিটিআরএল + সি ক্যাচ করা বা উপেক্ষা করা যায়।
স্মিথ জন্থ

উত্তর:


3

দুর্ভাগ্যক্রমে পাওয়ারশেল কনসোল হোস্ট Ctrl+Cচলমান ক্রিয়াকলাপ Ctrl+Breakবন্ধ করতে এবং অপারেশনটি বন্ধ করে এবং হোস্ট সেশনটি বন্ধ করে দেয়। এটি অত্যন্ত দুর্ভাগ্যজনক পছন্দ আইএমএইচও তবে এটি সেখানে রয়েছে এবং আমরা এটির সাথে বেঁচে থাকি।

আমি যখন এ জাতীয় পরিস্থিতিতে চলে যাই তখন সবচেয়ে সহজ কাজটি পাওয়ারশেল অধিবেশন cmdথেকে পাওয়ারশেল প্রম্পট থেকে কেবল কার্যকর করা হয়। এখন আমি আসলে অস্থায়ীভাবে পাওয়ারশেলকে বাইপাস করছি এবং হয়ে গেলে আমি সহজেই আমার পাওয়ারশেল সেশনে ফিরে আসি।

আপনি যে সমস্ত জিনিসটি সম্ভবত বিবেচনা করতে হবে তা হ'ল পাওয়ারশেলের পরিবর্তে cmd.exe ব্যবহার করা যদি আপনি পাওয়ারের চেষ্টা করছেন পাওয়ারশেলের কোনও বৈশিষ্ট্য না থাকে।


1

আপনি এটি এইভাবে চেষ্টা করতে পারেন:

  1. আপনার পাওয়ারশেল একটি অজগর প্রোগ্রামটি একটি কাজের জন্য চালু করে

  2. পাওয়ারশেল প্রধান প্রক্রিয়া দ্বারা Ctrl-C ট্র্যাপ করুন

  3. Ctrl-C আটকা পড়লে, পদক্ষেপ 1 এ চালু করা কাজটি বন্ধ করুন

তারপরে, আপনি আপনার পাওয়ারশেল স্ক্রিপ্টটি চালিয়ে যেতে পারেন

  1. পটভূমি কাজ শুরু করতে, স্টার্ট-জব ব্যবহার করুন

    $ কিলমেএ = স্টার্ট-জব-স্ক্রিপ্ট ব্লক {এবং পাইথন ম্যানেজ.পি py

  2. Ctrl-C ফাঁদে ফেলতে, আপনার কনসোলকে Ctrl-C কে একটি ইনপুট হিসাবে বিবেচনা করতে বলুন, এটি এমএসটিএন থেকে দেখুন

    [কনসোল] :: ট্রিটকন্ট্রোলএসিএনপুট = $ সত্য

তারপরে কী ইনপুটটি পরীক্ষা করার জন্য একটি ইউআই লুপ চালান:

while ($true) {

  write-host "Processing..."
  if ([console]::KeyAvailable) {

    $key = [system.console]::readkey($true)
    if (($key.modifiers -band [consolemodifiers]"control") -and
      ($key.key -eq "C")) {

      :
      break
    }
  }
}
:
  1. "Ctrl-C" চাপলে কাজ বন্ধ করতে,

    স্টপ-জব-জব $ মেরিমে

যাইহোক, আপনার পটভূমিতে চলমান অজগর সার্ভারের সাথে ইন্টারঅ্যাক্ট করার দরকার থাকলে জীবন সহজ হবে না। এবং আপনি সম্ভবত আপনার সার্ভারের আউটপুট অবিচ্ছিন্নভাবে প্রদর্শন করতে চান।

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