ব্যাশে চাকরি নিয়ন্ত্রণ অক্ষম করা (CTRL-Z)


12

আমার মাঝে মাঝে এটি ঘটে, যে আমি দুর্ঘটনাবশত CTRL+ টিপুন Zএবং আমার অ্যাপ্লিকেশন পটভূমিতে অদৃশ্য হয়ে যায়। আমি জানি, আমি এটি আবার আনতে পারি fg, সুতরাং এটি এত বড় বিষয় নয়। তবে আমি job controlযেভাবেই হোক এটিকে বন্ধ করার বিষয়ে ভাবছি । আমার পুরো জীবনে, আমি যখন এটির প্রয়োজনের একটি উদাহরণ মনে করতে পারি না, এটি কেবল অতীতকে আমার কাছে প্রতীক হিসাবে দেখায়।

job controlপুরোপুরি অক্ষম করা কি ঠিক আছে ? বা আমি কিছু মিস করছি, এবং এই বৈশিষ্ট্যটি কার্যকর হতে পারে? আমার এটিকে আমি কীভাবে অক্ষম করব.bashrc

হালনাগাদ:

set +m@ ফ্যালসনামস এর পরামর্শ অনুসারে চেষ্টা করেছি। তবে এটি কেবল তখনই কাজ করে যখন আমি এটি টার্মিনালে টাইপ করি। set +mআমার মধ্যে যোগ করার .bashrcকোনও প্রভাব নেই।


1
পুনরায় আপডেট: আপনি যখন আপনার পরামর্শ রাখেন যে বাশ চাকরি নিয়ন্ত্রণ বন্ধ করার চেষ্টা করছে তবে শেষ পর্যন্ত কোনও ত্রুটির কারণে এটি করা হয় না - $-(অ্যাক্টিভ বিকল্পগুলির তালিকার তালিকা) এখন আর থাকে না - এটি সম্ভবত রিপোর্ট করার মতো হতে পারে bug-bash@gnu.orgmset +m~/.bashrc
mklement0

উত্তর:


8

নিরীক্ষণ মোড ব্যবহার বন্ধ করতে আপনি আপনার কমান্ড লাইনে নিম্নলিখিতগুলি যুক্ত করতে পারেন।

সেট + মি

আপনার যদি পরে ctrl-z কার্যকারিতা প্রয়োজন হয় তবে আপনি এই সেশনের জন্য নজরদারি সক্ষম করতে কেবল 'সেট-এম' টাইপ করতে পারেন।

মানুষ বাশ থেকে । নোট করুন যে এটি '-m' এর জন্য, সেটিংসটি অক্ষম করতে টগল করে "+ এম" দিয়ে।

set [+abefhkmnptuvxBCEHPT] [+o option] [arg ...] 
....
-m
    Monitor mode. Job control is enabled. This option is on by default for interactive
    shells on systems that support it (see JOB CONTROL above). Background processes 
    run in a separate process group and a line containing their exit status is printed
    upon their completion. 

শেষ খাদের প্রচেষ্টা হিসাবে, আপনি "- সক্ষম-জব-নিয়ন্ত্রণ" পতাকা ব্যতীত বাশের একটি সংস্করণ ম্যানুয়ালি সংকলন করতে চাইতে পারেন। জিএনইউ থেকে একটি দ্রুত ইনস্টল গাইড এখানে । আপনি যদি এই রুটে যেতে পছন্দ করেন, তবে ব্যাশ পটভূমি প্রসেস জব কন্ট্রোলের মাধ্যমে চালিত হওয়ার ক্ষেত্রে কেবল / বিন / ব্যাশ প্রতিস্থাপন করবেন না। পরিবর্তে, একটি /bin/bash.alt বা অন্য কোনও ফাইল তৈরি করুন। আপনার ডিফল্ট শেলটি ব্যবহারকারী মোড চালিয়ে বা / ইত্যাদি / rootwd কে রুট হিসাবে সম্পাদনা করে এই বিকল্পটিতে পরিবর্তিত হতে পারে।


set +mটার্মিনালে কাজ করে, কিন্তু যখন আমি এটি আমার সাথে যুক্ত করি .bashrcতখন এর কোনও প্রভাব হয় না।
মার্টিন ভেজিটার

আহ, আপনি ঠিক বলেছেন। এটি সেই সময়ে নির্দিষ্ট স্ক্রিপ্টে স্থানীয়ীকৃত। তারপরে বাশ তার ডিফল্টগুলিকে
দৃser়ভাবে জোর

আমার নিজের বাশকে সংকলন করা চাকরি নিয়ন্ত্রণ অক্ষম করার জন্য অর্থ প্রদানের জন্য বেশ উচ্চ মূল্য বলে মনে হচ্ছে। অবশ্যই কিছু সেটিং থাকতে হবে যা এর মাধ্যমে কাজ করে .bashrc
মার্টিন ভেজিটার

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

4

stty susp undefবেশিরভাগ প্রোগ্রামের জন্য কীবোর্ড-শুরু করা সাসপেন্ড সিগন্যাল অক্ষম করবে, তবে কমান্ডগুলির মতো vimএবং emacsএর জন্য নির্দিষ্ট বাইন্ডিং রয়েছে Ctrl-Zস্বতন্ত্রভাবে পুনরায় কনফিগার করতে হবে।

আপনি আপনার ~/.bash_profileবা ~/.profile, লগআউট, আবার লগইনে এই স্টটি কমান্ডটি যুক্ত করতে পারেন ।


এটি আসলে কিছু প্রোগ্রামের জন্য কাজ করে। তবে উদাহরণস্বরূপ mcএটি কাজ করে না। যা মূলত আপনি যা বলেছেন তা নিশ্চিত করে। এমন কোনও সার্বজনীন সমাধান নেই যা সবার পক্ষে কাজ করে?
মার্টিন ভেজিটার

আমি কেবল লক্ষ্য করেছি, এর set +mজন্য কাজ করে mc, তবে কেবলমাত্র যদি আমি এটি টার্মিনালে টাইপ করি, না .bashrcবা না .profile
মার্টিন ভেজিটার

3

বা আমি কিছু মিস করছি, এবং এই বৈশিষ্ট্যটি কার্যকর হতে পারে?

প্রশ্নের এই অংশটির উত্তর দেওয়ার জন্য: সিএম / fgকম্বো আমার ভিম কর্মপ্রবাহের জন্য প্রয়োজনীয়। উদাহরণস্বরূপ, আমি Cz পছন্দ> git commit> fgতেজ মধ্যে থেকে Git চাদরে ব্যবহার করে।

সিজেড শেলটিকে আইডিই হিসাবে চিকিত্সা করতে সহায়তা করে, " একটি কাজ কর " নীতি অনুসারে। (এটি "আইডিই হিসাবে সম্পাদক" এর পরিবর্তে)।


1
^Zএকেবারে এখনও কার্যকর - তবে টার্মিনালটি যখন উইন্ডো ছিল না, তবে আপনার সামনে একটি বাক্স ছিল তখন এটি আরও বেশি কার্যকর ছিল। আর তোমার একটাই ছিল
ভোলকার সিগেল

2

trap "" SIGTSTPআপনার স্ক্রিপ্ট এ যোগ করুন । এটি সিগন্যালটি ধরবে এবং এটিকে উপেক্ষা করবে।

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