ইনপুট দিয়ে Nohup কমান্ড কার্যকর করুন


11

ইউনিক্সে, আমার একটি প্রক্রিয়া রয়েছে যা আমি নোহুপ ব্যবহার করে চালাতে চাই। যাইহোক, এই প্রক্রিয়াটি এক পর্যায়ে এমন প্রম্পটে অপেক্ষা করবে যেখানে আমাকে প্রবেশ করতে হবে yesবা noএটি চালিয়ে যেতে হবে। এখনও অবধি, ইউনিক্সে আমি নিম্নলিখিতগুলি করে চলেছি:

nohup myprocess <<EOF
y
EOF

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

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

my $startprocess = `nohup myprocess <<EOF &
y
EOF
`

এটি প্রশ্নের মধ্যে যেভাবে লেখা হয়েছে সেভাবে এটি কাজ করা উচিত (প্রথম সম্পাদনাটি কিছুটা অযৌক্তিক করার পরে)

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

@ মিশেল: আপনি ঠিক বলেছেন এবং আমি দুঃখিত। আমি ভিন্নতা এবং চিন্তাভাবনাটি ভুল ব্যাখ্যা করেছিলাম, আপনি ব্যাকটিকগুলি যুক্ত করেছিলেন। প্রশ্নটিকে আরও অযৌক্তিক করে তোলে: যেমন দেওয়া উদাহরণটি কাজ করা উচিত।

@ পার্ল এক? আমি ধরে নিয়েছিলাম যে পার্লটি চিনি না বলে চেষ্টা করা ছাড়া এটি কাজ করে না, তবে আমি অনুমান করি যে তিনি বলেছিলেন যে "নিম্নলিখিতগুলি কাজ করবে কিনা তা আমি জানি না", তাই সম্ভবত এটি ঠিক আছে; আপনার সম্ভবত উত্তর দেওয়া উচিত যে প্রদত্ত উদাহরণটি কাজ করে
মাইকেল মরোজেক

উত্তর:


19

আপনি যদি yপ্রক্রিয়াটির স্ট্ডিনে কেবল একটি লিখতে চান তবে আপনি এটি করতে পারেন:

(echo y | nohup myprocess) &

আপনি যদি yপ্রতিটি প্রম্পট আসে তার জন্য লিখতে চান , কোরুটিলটি yesঠিক এই উদ্দেশ্যেই বিদ্যমান - এটি আপনি স্টাডাউটকে যা বলবেন তা লিখতে থাকবে। এর ডিফল্ট হ'ল "y" আউটপুট, তাই আপনি ঠিক করতে পারেন:

(yes | nohup myprocess) &

তবে আপনার যদি অন্য কিছু প্রয়োজন হয় তবে আপনি এটি একটি তর্ক হিসাবে পাস করতে পারেন


+1: আমি yeseons ব্যবহার করতে দেখিনি
এমএসডাব্লু

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

প্রসেস আউটপুট কনসোলে লিখিত হতে বাধা দেয় না। এটি কেবল পটভূমিতে এটি শুরু করে।
fschmitt

এই প্রশ্নের প্রশ্নের সাথে কীভাবে কিছু আছে?

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